#arc114c. [arc114_c]Sequence Scores

[arc114_c]Sequence Scores

問題文

11 以上 MM 以下の整数から成る長さ NN の数列 AA に対して, f(A)f(A) を以下のように定義します.

  • 長さ NN の数列 XX があり,初め全ての要素は 00 である.f(A)f(A) を,次の操作を繰り返して XXAA に等しくするための最小の操作回数とする.
    • 1leqlleqrleqN1 \\leq l \\leq r \\leq N1leqvleqM1 \\leq v \\leq M を指定する.lleqileqrl \\leq i \\leq r に対して XiX_imax(Xi,v)\\max(X_i, v) で置き換える.

AA として考えられる数列は MNM^N 通りあります.これら全ての数列に対する f(A)f(A) の和を 998244353998244353 で割った余りを求めてください.

制約

  • 1leqN,Mleq50001 \\leq N, M \\leq 5000
  • 入力は全て整数

入力

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

NN MM

出力

全ての数列に対する f(A)f(A) の和を 998244353998244353 で割った余りを出力せよ.


入力例 1

2 3

出力例 1

15

32=93 ^ 2 = 9 通りの数列と,それに対する ff の値は以下の通りです.

  • A=(1,1)A = (1, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.
  • A=(1,2)A = (1, 2) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=2,r=2,v=2)(l = 2, r = 2, v = 2) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(1,3)A = (1, 3) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=2,r=2,v=3)(l = 2, r = 2, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(2,1)A = (2, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=1,r=1,v=2)(l = 1, r = 1, v = 2) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(2,2)A = (2, 2) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.
  • A=(2,3)A = (2, 3) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) , (l=2,r=2,v=3)(l = 2, r = 2, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,1)A = (3, 1) のとき,(l=1,r=2,v=1)(l = 1, r = 2, v = 1) , (l=1,r=1,v=3)(l = 1, r = 1, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,2)A = (3, 2) のとき,(l=1,r=2,v=2)(l = 1, r = 2, v = 2) , (l=1,r=1,v=3)(l = 1, r = 1, v = 3) として 22 回の操作で可能なので,f(A)=2f(A) = 2 です.
  • A=(3,3)A = (3, 3) のとき,(l=1,r=2,v=3)(l = 1, r = 2, v = 3) として 11 回の操作で可能なので,f(A)=1f(A) = 1 です.

これらの和は 3times1+6times2=153 \\times 1 + 6 \\times 2 = 15 です.


入力例 2

3 2

出力例 2

15

入力例 3

34 56

出力例 3

649717324