#arc114c. [arc114_c]Sequence Scores

[arc114_c]Sequence Scores

问题描述

对于长度为NN,由介于11MM(含)之间的整数组成的序列AA,我们定义f(A)f(A)如下:

  • 我们有一个长度为NN的序列XX,初始情况下每个元素均为00。通过重复执行以下操作来使XX等于AAf(A)f(A)为所需的最小操作次数:
    • 指定1lrN1\leq l\leq r\leq N1vM1\leq v\leq M,然后对于每个lirl\leq i\leq r,将XiX_i替换为max(Xi,v)\max(X_i, v)

求所有可能的MNM^N个序列AAf(A)f(A)之和,模998244353998244353

约束条件

  • 1N,M50001\leq N, M\leq 5000
  • 输入中的所有值均为整数。

输入

输入以以下格式从标准输入给出:

NN MM

输出

打印所有序列AAf(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)使XX等于它,因此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)使XX等于它,因此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)使XX等于它,因此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)使XX等于它,因此f(A)=2f(A)=2
  • 对于A=(2,2)A=(2, 2),我们可以通过一次操作(l=1,r=2,v=2)(l = 1, r = 2, v = 2)使XX等于它,因此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)使XX等于它,因此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)使XX等于它,因此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)使XX等于它,因此f(A)=2f(A)=2
  • 对于A=(3,3)A=(3, 3),我们可以通过一次操作(l=1,r=2,v=3)(l = 1, r = 2, v = 3)使XX等于它,因此f(A)=1f(A)=1

这些值的总和为3×1+6×2=153\times 1 + 6\times 2 = 15.


示例输入2

3 2

示例输出2

15

示例输入3

34 56

示例输出3

649717324