#agc036c. [agc036_c]GP 2

[agc036_c]GP 2

問題文

長さ NN の数列 x=(x0,x1,cdots,xN1)x=(x_0,x_1,\\cdots,x_{N-1}) があります。 最初、すべての ii (0leqileqN10 \\leq i \\leq N-1) について xi=0x_i=0 です。

すぬけさんは、次の操作をちょうど MM 回行います。

  • 相異なる添字 i,ji,j (0leqi,jleqN1,ineqj0 \\leq i,j \\leq N-1,\\ i \\neq j) を選ぶ。 そして、xix_ixi+2x_i+2 で置き換える。また、xjx_jxj+1x_j+1 で置き換える。

最終的な数列 xx の状態としてありうるものが何通りあるかを求めてください。 ただし、答えは非常に大きくなることがあるので、998244353998244353 で割ったあまりを求めてください。

制約

  • 2leqNleq1062 \\leq N \\leq 10^6
  • 1leqMleq5times1051 \\leq M \\leq 5 \\times 10^5
  • 入力される値はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

出力

最終的な数列 xx の状態としてありうるものが何通りあるかを 998244353998244353 で割ったあまりを出力せよ。


入力例 1

2 2

出力例 1

3

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=1 とする。xx(0,0)(0,0) から (2,1)(2,1) へ変化する。
  • 22 回目の操作: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