2166: 扑克牌

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:2 解决:2

题目描述

组合数学是数学的重要组成部分,是一门研究离散对象的科学,它主要研究满足一定条件的组态(也称组合模型)的存在、计数以及构造等方面的问题。组合数学的主要内容有组合计数、组合设计、组合矩阵、组合优化等。

随着计算机科学的日益发展,组合数学的重要性也日渐凸显,因为计算机科学的核心内容是使用算法处理离散数据。

 

今天我们来研究组合数学中的一个有趣的问题,也是一个简单的计数问题:

从一副含有n(n≤10000)张的扑克牌[显然每张扑克牌都不相同]中,分给m(m≤100)个人,第i个人得到ai (0≤ai≤100)张牌,求一共有几种分法,这个数可能非常大,请输出此数模10007后的结果。

输入

第一行两个整数 n m

第二行 m个整数 ai

输出

shu chu

样例输入 复制

5 2
3 1

样例输出 复制

20

提示

【样例输入2

20 19

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

【样例输出2

8707

 

【数据规模】对于50%的数据,M = 1