#abc276g. [abc276_g]Count Sequences

[abc276_g]Count Sequences

問題文

以下の条件を満たす項数 NN の整数列 A=(a1,a2,ldots,aN)A=(a_1,a_2,\\ldots,a_N) の個数を 998244353998244353 で割った余りを求めてください。

  • $0 \\leq a_1 \\leq a_2 \\leq \\ldots \\leq a_N \\leq M$
  • i=1,2,ldots,N1i=1,2,\\ldots,N-1 それぞれについて、「aia_i33 で割った余り」と「ai+1a_{i+1}33 で割った余り」が異なる

制約

  • 2leqNleq1072 \\leq N \\leq 10^7
  • 1leqMleq1071 \\leq M \\leq 10^7
  • 入力はすべて整数

入力

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

NN MM

出力

答えを出力せよ。


入力例 1

3 4

出力例 1

8

以下の 88 個が条件を満たします。

  • (0,1,2)(0,1,2)
  • (0,1,3)(0,1,3)
  • (0,2,3)(0,2,3)
  • (0,2,4)(0,2,4)
  • (1,2,3)(1,2,3)
  • (1,2,4)(1,2,4)
  • (1,3,4)(1,3,4)
  • (2,3,4)(2,3,4)

入力例 2

276 10000000

出力例 2

909213205

個数を 998244353998244353 で割った余りを求めてください。