Logo HelloWorld信息学奥赛题库

少儿编程

时间限制:1 s 空间限制:256 MB

#964. 奇怪的分组

统计

题目背景

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

题目描述

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

输入格式:

第一行两个整数N和M ,后面有M行,每行一个整数,表示Ci

输出格式:

仅有一行,一个整数,方案数模1000000007的值。

输入样例#1:

10 3
1
2
3

输出样例#1:

3

数据范围约定

对于 30% 的数据,N,M≤10。

对于 60% 的数据,N,M≤1000。

对于 100% 的数据,1≤N,M≤1000000,1≤Ci≤1000。

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