AT_arc112_e [ARC112E] Cigar Box
Description
[problemUrl]: https://atcoder.jp/contests/arc112/tasks/arc112_e
数列 $ (1,2,\dots,n) $ に対して、以下の操作をちょうど $ m $ 回繰り返したところ、$ (a_1,\dots\ ,a_n) $ になりました。
- 項を $ 1 $ つ選んで消す。その後、消した項を数列の先頭か末尾に付け加える。
$ m $ 回の操作列としてありうるものの数を $ 998244353 $ で割ったあまりを求めてください。
ただし、$ 2 $ つの操作列が同じであるとは、「どの操作についても、選んだ項と付け加えた位置がどちらも等しいこと」とします。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ n $ $ m $ $ a_1 $ $ \dots $ $ a_n $
Output Format
操作列としてありうるものの数を $ 998244353 $ で割ったあまりを出力せよ。
Explanation/Hint
### 制約
- $ 2\le\ n\ \le\ 3000 $
- $ 1\le\ m\ \le\ 3000 $
- $ a_1,\dots\ ,a_n $ は $ 1,\dots,n $ の順列
### Sample Explanation 1
以下の $ 5 $ 通りの操作列がありえます。 - $ 1 $ を消して先頭に付け加える。数列は $ (1,2,3,4,5) $ となる。その後、$ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。 - $ 3 $ を消して先頭に付け加える。数列は $ (3,1,2,4,5) $ となる。その後、$ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。 - $ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。その後、$ 1 $ を消して先頭に付け加える。数列は $ (1,2,4,5,3) $ となる。 - $ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。その後、$ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。 - $ 5 $ を消して末尾に付け加える。数列は $ (1,2,3,4,5) $ となる。その後、$ 3 $ を消して末尾に付け加える。数列は $ (1,2,4,5,3) $ となる。
### Sample Explanation 2
$ 4 $ 種類の操作のうち、$ 2 $ 種類では数列が全く変わらず、もう $ 2 $ 種類では $ 2 $ 項が入れ替わります。 このことから、全ての操作列のうち半分である $ 4^m/2\ =\ 2^{31}\ =\ 2147483648 $ が求める操作列の数であることが示せます。 よって、$ 2147483648 $ を $ 998244353 $ で割ったあまりである $ 150994942 $ が答えです。