atcoder#ARC135F. [ARC135F] Delete 1, 4, 7, ...

[ARC135F] Delete 1, 4, 7, ...

配点 : 10001000

問題文

整数 NN が与えられます。整数列 A=(1,2,,N)A = (1, 2, \ldots, N) に対して、次の操作をちょうど KK 回行います:

  • 操作を行う時点での AA の項数を nn とする。1in1\leq i \leq n かつ i1(mod3)i\equiv 1\pmod{3} となるすべての ii に対して、AAii 番目の項を削除する。この操作はすべての ii について同時に行う。

KK 回の操作後の AA の項の総和を 998244353998244353 で割った余りを求めてください。

制約

  • 1N10141\leq N\leq 10^{14}
  • 1K1001\leq K\leq 100

入力

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

NN KK

出力

KK 回の操作後の AA の項の総和を 998244353998244353 で割った余りを出力してください。

10 2
25
  • はじめ、A=(1,2,3,4,5,6,7,8,9,10)A = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10) です。
  • 11 回目の操作を行うと、A=(2,3,5,6,8,9)A = (2, 3, 5, 6, 8, 9) となります。
  • 22 回目の操作を行うと、A=(3,5,8,9)A = (3, 5, 8, 9) となります。
  • このとき AA の項の総和は 3+5+8+9=253 + 5 + 8 + 9 = 25 です。
10 10
0
  • 22 回目の操作を行うと、A=(3,5,8,9)A = (3, 5, 8, 9) となります(入力例 1 と同様です)。
  • 33 回目の操作を行うと、A=(5,8)A = (5, 8) となります。
  • 44 回目の操作を行うと、A=(8)A = (8) となります。
  • 55 回目の操作を行うと、AA は空になります。
  • 66 回目以降の操作では、AA は空のままで、その項の総和は 00 です。
10000 10
862816