#arc112e. [arc112_e]Cigar Box

[arc112_e]Cigar Box

题目描述

我们对序列(1,2,dots,n)(1,2,\\dots,n)进行了以下操作mm次,结果得到了(a1,dots,an)(a_1,\\dots ,a_n)

  • 删除一个元素。然后,将删除的元素添加到序列的开头或结尾。

计算进行这mm次操作的可能序列的数量,取模为998244353998244353

在这里,当在每个操作中选择相同的元素并将其添加到相同的位置时,认为两个操作序列相同。

约束条件

  • 2lenle30002\\le n \\le 3000
  • 1lemle30001\\le m \\le 3000
  • a1,dots,ana_1,\\dots ,a_n1,dots,n1,\\dots,n的一个排列。

输入

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

nn mm

a1a_1 dots\\dots ana_n

输出

打印进行这mm次操作的可能序列的数量,取模为998244353998244353


示例输入 1

5 2
1 2 4 5 3

示例输出 1

5

有五种可能的操作序列,如下所示:

  • 删除11并将其添加到开头,得到(1,2,3,4,5)(1,2,3,4,5)。然后,删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)
  • 删除33并将其添加到开头,得到(3,1,2,4,5)(3,1,2,4,5)。然后,删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)
  • 删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)。然后,删除11并将其添加到开头,得到(1,2,4,5,3)(1,2,4,5,3)
  • 删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)。然后,删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)
  • 删除55并将其添加到结尾,得到(1,2,3,4,5)(1,2,3,4,5)。然后,删除33并将其添加到结尾,得到(1,2,4,5,3)(1,2,4,5,3)

示例输入 2

2 16
1 2

示例输出 2

150994942

四种操作中的两种对序列没有影响,其他两种操作会交换两个元素。从这个事实我们知道,有4m/2=231=21474836484^m/2 = 2^{31} = 2147483648种我们想要计数的操作序列 - 所有可能序列的一半。因此,答案是21474836482147483648取模998244353998244353,即150994942150994942


示例输入 3

10 3000
3 7 10 1 9 5 4 8 6 2

示例输出 3

129989699