問題文

NN 要素からなる数列 A=(A1, A2,,AN)A = (A_1,\ A_2,\dots ,A_N) であって、以下の条件を全て満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • 1iN1\le i\le N なる全ての整数 ii に対して、Ai{0, 1, 2}A_i\in \{ 0,\ 1,\ 2\}
  • 1iN11\le i \le N-1 なる全ての整数 ii に対して、Ai2A_i\neq 2 または Ai+12A_{i+1}\neq 2
  • i=1NAi\displaystyle\sum_{i=1}^{N}A_iMM の倍数

入力

N  MN\ \ M

制約

  • 1N1051\le N\le 10^5
  • 2M2N2\le M\le 2N
  • N, MN,\ M は整数

出力

条件を満たす数列の個数を 998244353998244353 で割ったあまりを出力せよ。

入力例1

3 3

出力例1

8

(0,0,0)(0,0,0)(0,1,2)(0, 1, 2)(0,2,1)(0,2,1)(1,0,2)(1,0,2)(1,1,1)(1,1,1)(1,2,0)(1,2,0)(2,0,1)(2,0,1)(2,1,0)(2,1,0)88 通りが条件を満たします。 (2,2,2)(2,2,2) は3つ目の条件を満たしますが、2つ目の条件を満たしません。

入力例2

314 159

出力例2

971519497

mod998244353\bmod{998244353} で出力してください。

提出


Go (1.21)