#ATagc036c. [AGC036C] GP 2

[AGC036C] GP 2

题目描述

有一个长度为 NN 的数列 x=(x0,x1,,xN1)x=(x_0,x_1,\cdots,x_{N-1})。最开始,对于所有的 ii0iN10 \leq i \leq N-1),都有 xi=0x_i=0

すぬけさん将恰好进行 MM 次如下操作:

  • 选择两个不同的下标 i,ji,j0i,jN1, ij0 \leq i,j \leq N-1,\ i \neq j)。然后,将 xix_i 替换为 xi+2x_i+2,并将 xjx_j 替换为 xj+1x_j+1

请计算,最终数列 xx 可能出现的不同状态有多少种。由于答案可能非常大,请输出其对 998244353998244353 取模的结果。

输入格式

输入从标准输入读取,格式如下:

NN MM

输出格式

输出最终数列 xx 可能出现的不同状态的数量,对 998244353998244353 取模。

样例 1

输入

2 2

输出

3

样例 2

输入

3 2

输出

19

样例 3

输入

10 10

输出

211428932

样例 4

输入

100000 50000

输出

3463133

说明/提示

限制条件

  • 2N1062 \leq N \leq 10^6
  • 1M5×1051 \leq M \leq 5 \times 10^5
  • 输入的所有数均为整数。

样例解释 1

经过 22 次操作后,xx 可能的状态有以下 33 种:

  • x=(2,4)x=(2,4)
  • x=(3,3)x=(3,3)
  • x=(4,2)x=(4,2)

例如,如果想得到 x=(3,3)x=(3,3),可以按如下方式操作:

  • 11 次操作:选择 i=0,j=1i=0, j=1xx(0,0)(0,0) 变为 (2,1)(2,1)
  • 22 次操作:选择 i=1,j=0i=1, j=0xx(2,1)(2,1) 变为 (3,3)(3,3)

由 ChatGPT 4.1 翻译