#B3902. [NICA #3] 数计组数

    ID: 9215 Type: RemoteJudge 1000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 4 Uploaded By: Tags>动态规划,dpO2优化排列组合

[NICA #3] 数计组数

题目描述

称一个长度为 nn 的数组 aa 是“数计的”,当且仅当存在一种将其划分成若干个区间的方案,使得每个区间的最小值恰好等于区间长度,或者说存在 0=x1<x2<x3<<xm=n0=x_1<x_2<x_3<\cdots<x_m=n,满足 $\forall 1\le i<m,\min\limits_{j=x_i+1}^{x_{i+1}}a_j=x_{i+1}-x_i$。

给定正整数集 SS,询问有多少长度为 nn 的数组 aa 满足 aiSa_i\in Saa 是“数计的”。答案对 109+710^9+7 取模。

输入格式

输入第一行两个整数 n,mn,mnn 表示数组的长度,mm 表示正整数集 SS 的大小。

第二行包含 mm 个正整数 b1,b2,,bmb_1,b_2,\dots,b_m,表示正整数集 SS 中包含的元素。特别的,我们保证 1b1<b2<b3<b4<<bm1061\le b_1< b_2<b_3<b_4<\cdots<b_m\le 10^6

输出格式

输出仅包含一个整数,表示答案对 109+710^9+7 取模后的结果。

2 2
1 2
2

提示

样例 1 解释

只有两种可能的数组为“数计的”,分别是 [1,1][1,1][2,2][2,2]

数据范围

对于所有数据,保证 1n20001\le n\le 20001m1000001\le m\le 1000001b1<b2<b3<b4<<bm1061\le b_1< b_2<b_3<b_4<\cdots<b_m\le 10^6