#arc100d. [arc100_d]Colorful Sequences

[arc100_d]Colorful Sequences

問題文

整数 NNKK、そして長さ MM の整数列 AA が与えられます。

各要素が 11 以上 KK 以下の整数である整数列がカラフルであるとは、 その整数列の長さ KK の連続する部分列であって、11 から KK までの整数を 11 個ずつ含むものが存在することを意味します。

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、109+710^9+7 で割った余りを求めてください。

制約

  • 1leqNleq250001 \\leq N \\leq 25000
  • 1leqKleq4001 \\leq K \\leq 400
  • 1leqMleqN1 \\leq M \\leq N
  • 1leqAileqK1 \\leq A_i \\leq K
  • 入力はすべて整数である。

入力

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

NN KK MM A1A_1 A2A_2 ...... AMA_M

出力

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、 その総和を 109+710^9+7 で割った余りを出力せよ。


入力例 1

3 2 1
1

出力例 1

9

長さ 33 のカラフルな整数列は、(1,1,2)(1,1,2), (1,2,1)(1,2,1), (1,2,2)(1,2,2), (2,1,1)(2,1,1), (2,1,2)(2,1,2), (2,2,1)(2,2,1)66 個です。 これらの整数列の、連続する部分列であって A=(1)A=(1) に一致するものの個数は、それぞれ 22, 22, 11, 22, 11, 11 個です。 よって、これらの合計である 99 が答えになります。


入力例 2

4 2 2
1 2

出力例 2

12

入力例 3

7 4 5
1 2 3 1 2

出力例 3

17

入力例 4

5 4 3
1 1 1

出力例 4

0

入力例 5

10 3 5
1 1 2 3 3

出力例 5

1458

入力例 6

25000 400 4
3 7 31 127

出力例 6

923966268

入力例 7

9954 310 12
267 193 278 294 6 63 86 166 157 193 168 43

出力例 7

979180369