#agc036c. [agc036_c]GP 2

[agc036_c]GP 2

问题陈述

我们有一个序列 NN 的整数:x=(x0,x1,,xN1)x=(x_0,x_1,\cdots,x_{N-1})。最初,对于每个 ii (0iN10 \leq i \leq N-1),xi=0x_i=0

Snuke 将执行以下操作恰好 MM 次:

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

计算经过 MM 次操作后可能得到的不同序列数。由于可能非常大,取结果对 998244353998244353 求模。

约束条件

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

输入

输入的格式如下所示:

NN MM

输出

按照 998244353998244353 模取余后的数,打印经过 MM 次操作后可能得到的不同序列数。


示例输入 1

2 2

示例输出 1

3

经过两次操作后,可能得到三种不同的结果:

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

例如,x=(3,3)x=(3,3) 可以通过以下操作序列得到:

  • 首先,选择 i=0,j=1i=0,j=1,将 xx(0,0)(0,0) 改变为 (2,1)(2,1)
  • 其次,选择 i=1,j=0i=1,j=0,将 xx(2,1)(2,1) 改变为 (3,3)(3,3)

示例输入 2

3 2

示例输出 2

19

示例输入 3

10 10

示例输出 3

211428932

示例输入 4

100000 50000

示例输出 4

3463133