开始: 2023-08-12 16:00:00

0812稠州暑假查漏补缺赛

结束: 2023-08-12 21:00:00
当前  2025-01-24 17:35:08  类型: OI  状态: 已经结束 

P3. 货币系统
描述

母牛们不但创建了它们自己的政府而且选择了建立了自己的货币系统。由于它们特殊的思考方式,它们对货币的数值感到好奇。

传统地,一个货币系统是由 1,5,10,20,25,50,100 的单位面值组成的。

母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。

举例来说, 使用一个货币系统 (1,2,5,10, \ldots) 产生 18 单位面值的一些可能的方法是:18 \times 1, 9 \times 2, 8 \times 2+2 \times 1, 3 \times 5+2+1,等等。

写一个程序来计算有多少种方法用给定的货币系统来构造一定数量的面值。

由于数字可能会很大,最终输出的结果对1E9+7取模即可


输入

第一行两个整数:货币系统中货币的种类数目 V1 \leq V \leq 25)。要构造的数量钱是 N1 \leq N \leq 10,000)。

第二行 V 个整数,代表所有可用的货币的面值。


输出

单独的一行,包含用这 V 种硬币凑足 N 单位货币的方案数(对1E9+7取模)。


样例

输入

3 10
1 2 5

输出

10
提示

30%数据  N<=50

50%数据 N<=1000

100%数据 N<=10000,V<=25

提交

题目参数
时间限制 1 秒
内存限制 128 MB
提交