#arc100d. [arc100_d]Colorful Sequences

[arc100_d]Colorful Sequences

题目描述

给定整数N,KN, K以及长度为MM的整数序列AA

如果存在长度为KK的连续子序列,其中包含了11KK之间(包括11KK)的每个整数恰好一次,那么整数序列被称为“多彩”的。

对于长度为NN的每个多彩整数序列,计算与AA相符的连续子序列的数量,然后求出所有数量的和。由于答案可能非常大,所以将和对109+710^9+7取模。

约束条件

  • 1N250001 \leq N \leq 25000
  • 1K4001 \leq K \leq 400
  • 1MN1 \leq M \leq N
  • 1AiK1 \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的多彩整数序列有66个:(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)。这些序列中与A=(1)A=(1)相符的连续子序列的数量分别为:222211221111。因此,答案是它们的和,即99

示例输入 2

4 2 2
1 2

示例输出 2

12

... ...