#7028. 数口罩

数口罩

题目描述

nn 名学生排成了一列长队,每名学生都戴口罩,口罩的式样共有 mm 种。每一名学生都比较关心排在他前面的学生中,有多少人带的口罩式样和他是相同的。设 aia_i 表示在第 ii 名学生前的 i1i-1 名学生中,有 aia_i 名学生戴的口罩式样与他一模一样,请问有多少种不同的排队方案,能够使得与给定数据一致?

输入格式

输入共两行: 第一行,两个正整数n,mn,m 第二行,nn个正整数,其中第ii个正整数表示aia_i

输出格式

输出一个正整数,表示可能的方案数对1e9+71e9+7取模后的结果,若不可能出现输入的情况,则输出00

3 4
0 1 2
4

样例解释 1

对于给定输入,可以推出每个人和前一个人所带口罩颜色均相同,所以可能的情况共有4种:

  1. 每个人都带颜色1的口罩
  2. 每个人都带颜色2的口罩
  3. 每个人都带颜色3的口罩
  4. 每个人都带颜色4的口罩
4 3
0 1 1 2
0

样例解释 2

第一个人和第二个人所带口罩颜色相同,但第三个人前面有一个与他颜色相同,产生矛盾,不可能发生这种情况,故方案数为0

数据范围

对于30%30\%的数据,1n1001 \leq n \leq 100 对于70%70\%的数据,1n1041 \leq n \leq 10^4 对于100%100\%的数据,1n1051 \leq n \leq 10^51m1001 \leq m \leq 100