問題文
長さ N の数列 x=(x0,x1,cdots,xN−1) があります。 最初、すべての i (0leqileqN−1) について xi=0 です。
すぬけさんは、次の操作をちょうど M 回行います。
- 相異なる添字 i,j (0leqi,jleqN−1,ineqj) を選ぶ。 そして、xi を xi+2 で置き換える。また、xj を xj+1 で置き換える。
最終的な数列 x の状態としてありうるものが何通りあるかを求めてください。 ただし、答えは非常に大きくなることがあるので、998244353 で割ったあまりを求めてください。
制約
- 2leqNleq106
- 1leqMleq5times105
- 入力される値はすべて整数である。
入力
入力は以下の形式で標準入力から与えられる。
N M
出力
最終的な数列 x の状態としてありうるものが何通りあるかを 998244353 で割ったあまりを出力せよ。
入力例 1
2 2
出力例 1
3
2 回の操作後の x の状態としてありうるものは以下の 3 通りです。
- x=(2,4)
- x=(3,3)
- x=(4,2)
たとえば、x=(3,3) としたい場合、次のように操作すればよいです。
- 1 回目の操作:i=0,j=1 とする。x は (0,0) から (2,1) へ変化する。
- 2 回目の操作:i=1,j=0 とする。x は (2,1) から (3,3) へ変化する。
入力例 2
3 2
出力例 2
19
入力例 3
10 10
出力例 3
211428932
入力例 4
100000 50000
出力例 4
3463133