#ATarc112e. [ARC112E] Cigar Box

[ARC112E] Cigar Box

题目描述

对于数列 (1,2,,n)(1,2,\dots,n),经过恰好 mm 次如下操作后,变成了 (a1,,an)(a_1,\dots,a_n)

  • 选择一个项并将其删除。然后,将被删除的项添加到数列的开头或末尾。

请你求出,作为 mm 次操作序列可能的方案数,模 998244353998244353 的余数。

这里,两个操作序列相同,当且仅当“每一步所选的项和添加的位置都相同”。

输入格式

输入以如下格式从标准输入给出。

nn mm a1a_1 \dots ana_n

输出格式

输出作为操作序列可能的方案数,模 998244353998244353 的余数。

样例 1

输入

5 2
1 2 4 5 3

输出

5

样例 2

输入

2 16
1 2

输出

150994942

样例 3

输入

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

输出

129989699

说明/提示

限制条件

  • 2n30002 \leq n \leq 3000
  • 1m30001 \leq m \leq 3000
  • a1,,ana_1,\dots,a_n1,,n1,\dots,n 的一个排列

样例解释 1

存在以下 55 种可能的操作序列。

  • 删除 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

44 种操作中,有 22 种操作不会改变数列,另外 22 种操作会交换 22 个元素。因此,所有操作序列中有一半(即 4m/2=231=21474836484^m/2 = 2^{31} = 2147483648)是满足条件的。于是,21474836482147483648 除以 998244353998244353 的余数 150994942150994942 就是答案。

由 ChatGPT 4.1 翻译