#CSES1746. 数组描述

数组描述

题目背景

翻译自 CSES-1746 题。

题目描述

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

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

输入格式

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

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

输出格式

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

样例

3 5
2 0 2
3

样例1解释

数组的长度是 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 \leq m \leq 100

0xim0 \leq x_i \leq m