#P1680. 奇怪的分组

奇怪的分组

题目背景

终于解出了 dm 同学的难题,dm 同学同意帮 v 神联络。可 dm 同学有个习惯,就是联络同学的时候喜欢分组联络,而且分组的方式也很特别,要求第 ii 组的的人数必须大于他指定的个数 CiC_i。在 dm 同学联络的时候,v 神在想,按照 dm 同学的规则一共可以有多少种方案呢?他想啊想,终于……没想出来。于是他又想到了聪明的你,你能帮 v 神算出按照 dm 同学的规则有多少种分组方案吗?

题目描述

v 神的班级共有 NN 个人,dm 同学想把同学分成 MM 组联络,要求第 ii 组的人数必须大于给定的正整数 CiC_i,求有多少不同的方案(两个是相同的方案当且仅当对于任意的一队 ii,两个方案的第 ii组同学数量相等)。由于结果很大,所以你只需要输出模 109+710^9+7 的值。

输入格式

第一行两个整数 NNMM,后面有 MM 行,每行一个整数,表示 CiC_i

输出格式

仅有一行,一个整数,方案数模 109+710^9+7 的值。

10 3
1
2
3

3

提示

样例解释

方案有三种,每组的个数分别是 (3,3,4)(3,3,4)(2,4,4)(2,4,4)(2,3,5)(2,3,5)

数据范围约定

对于 30%30\% 的数据,N,M10N,M\le 10

对于 60%60\% 的数据,N,M1000N,M\le 1000

对于 100%100\% 的数据,1N,M1061\le N ,M\le 10^61Ci10001\le C_i\le 1000

数据保证至少有一个方案。