#L4768. 「ROIR 2025 Day1」寻找宝藏

    ID: 3930 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划状态压缩组合计数递推关系位运算枚举

「ROIR 2025 Day1」寻找宝藏

题目描述

译自 ROI Regional 2025 Day1 T4. Поиск сокровищ

为了寻找矿物资源,科学家们研发了一种特殊的扫描仪。

我们将搜索区域表示为一个包含 kknn 列的表格。行的编号从上到下为 11kk,列的编号从左到右为 11nn。每个单元格中都可能存在矿物资源。

扫描仪的工作方式如下:它可以在第 pp 列启动,并返回扫描区域中含有矿物的单元格数量。扫描区域包括第 pp 列的所有单元格,第 p1p-1 列的前 k1k-1 个单元格,第 p2p-2 列的前 k2k-2 个单元格,依此类推。下图展示了当 k=3k = 3n=5n=5 时,不同 pp 值下的扫描区域。

现在,给定扫描仪在所有列上的返回值,我们用 bpb_p 表示第 pp 列的扫描结果。如果对于某个表格,已经确定每个单元格是否含有矿物,并且根据该表格,扫描仪返回的结果与给定的 bpb_p 相符,则称该表格为 合法的。例如,如果在上述示例中,扫描仪返回的结果是 [2,1,2,3,2][2, 1, 2, 3, 2],那么以下就是一个合法的表格(含有矿物的单元格用黑色三角形表示):

根据给定的扫描结果,确定合法表格的数量,并输出该数量对 109+710^9 + 7 取模的结果。请注意,扫描仪可能存在故障,导致没有任何合法的表格,这种情况下应输出 00


输入格式

第一行包含两个整数 nnkk (1n2001 \le n \le 200, 1k71 \le k \le 7),分别表示列数和行数。

第二行包含 nn 个整数 b1,b2,,bnb_1, b_2, \ldots, b_n (0bik20 \le b_i \le k^2),扫描仪在每一列的返回值。


输出格式

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


样例

输入

5 3
2 1 2 3 2

输出

24

数据范围与提示

子任务 分值 附加限制 子任务依赖
1 7 k2k \leq 2
2 9 k3k \leq 3 1
3 k4k \leq 4 1, 2
4 20 k5k \leq 5 1~3
5 15 k6k \leq 6 1~4
6 10 1nk251 \leq n \cdot k \leq 25
7 30 无附加限制 1~6