排列
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

牛牛正在跟牛妹玩游戏。

牛牛手里捧着 n 个数 ,并按这一些数某种顺序排成一个数列。具体地,如果数列是 ,则

牛妹很想知道牛牛手里捧着的数列是什么。但调皮的牛牛只告诉她这个数列的超级逆序对为 k 。

牛妹会随便猜一个符合牛牛要求的数列,她想知道猜对这个数列的概率为多少,答案对 998244353 取模。

超级逆序对的定义:满足 i<j 且  的二元组 (i,j) 。

例如:对于数列 a={ 2,4,5,3,1} ,二元组 (3,4) , (3,5) 均是超级逆序对。

输入描述:

读入 n 和 k

输出描述:

输出概率。
示例1

输入

复制
1 0

输出

复制
1
示例2

输入

复制
100 100

输出

复制
545068381

备注:



保证至少存在一个满足条件的数列。