#P14352. 排序

排序

题目描述

对于一个长度为 nn 的排列 aa,定义一个排序算法 A(k)A(k) 如下:

  • 执行 kk 轮如下操作:
    • 依次从 1∼n−11\sim n-1 枚举 ii:
      • 若 ai>ai+1a_i>a_{i+1},则交换 aia_i 和 ai+1a_{i+1}。

给定 nn 和 kk,求出有多少个长度为 nn 的排列 aa 执行如上排序算法 A(k)A(k) 后对于任意满足 1≤i<n1\leq i<n 的 ii 均满足 ai<ai+1a_i<a_{i+1},答案对 998244353998244353 取模。

输入格式

共一行两个数 n,kn,k,意义同题目描述。

输出格式

输出一个非负整数表示符合条件的排列的个数,对 998244353998244353 取模。

4 5
24
3 1
4
30 1
536870912
99 37
286701794
1000000000000000000 1919810
235483917

提示

【样例解释 #1】

所有的排列都符合要求。

该样例满足测试点 77 的限制。

【样例解释 #2】

在所有的排列中,有以下排列满足要求。

[1,2,3],[1,3,2],[2,1,3],[3,1,2][1,2,3],[1,3,2],[2,1,3],[3,1,2]。

所以答案为 44。

该样例满足测试点 1414 的限制。

【数据范围】

对于所有测试数据:1≤n≤10181\leq n\leq 10^{18},1≤k≤2×1071\leq k\leq 2\times 10^7。

对于测试点 1∼101\sim 10:k>nk>n。

对于测试点 11∼6511\sim 65:k≤n≤10k\leq n\leq 10。

对于测试点 66∼8066\sim 80:n≤100n\leq 100,k=1k=1。

对于测试点 81∼9081\sim 90:n≤100n\leq 100。

对于测试点 91∼9591\sim 95:n≤107n\leq 10^7。

对于测试点 96∼10096\sim 100:无特殊性质。