#CSES1746. 数组描述

数组描述

题目描述

你知道一个数组有 nn 个整数,这些整数的值在 11mm 之间,并且相邻两个值的绝对差不超过 11

给定一个数组的描述,其中一些值可能是未知的,你的任务是计算符合这个描述的数组的数量。

输入格式

第一行包含两个整数 nnmm,分别代表数组的大小和每个值的上限。

第二行包含 nn 个整数 x1,x2,,xnx_1, x_2, \ldots, x_n,代表数组的元素值。值为 00 表示未知的值。

输出格式

输出一个整数,表示符合描述的数组的数量,结果对 109+710^9 + 7 取模。

样例

3 5
2 0 2
3

提示

数组的长度是 33,最大值为 55。给定数组的第 11 和第 33 个元素的值为 22,第二个元素是未知的(为 00)。符合条件的数组有 33 种可能:

  1. [2,1,2][2, 1, 2]
  2. [2,2,2][2, 2, 2]
  3. [2,3,2][2, 3, 2]

数据范围

  • 1n1051 \le n \le 10^5
  • 1m1001 \le m \le 100
  • 0xim0 \le x_i \le m