#4032. 货币系统(Money Systems) 暂未评定

时间限制:1000 ms 内存限制:128 MiB 输入文件:money.in 输出文件:money.out
题目类型:传统 评测方式:文本比较
上传者: root

注意

本题采用文件输入输出。

输入文件为 money.in, 输出文件为money.out

题目描述

母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。

[In their own rebellious way],他们对货币的数值感到好奇。

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

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

举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单位面值的一些可能的方法是:18x1, 9x2, 8x2+2x1, 3x5+2+1,等等其它。

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

保证总数将会适合long long (C/C++) 和 Int64 (Free Pascal)。

输入格式

从文件 money.in 中读入数据。

货币系统中货币的种类数目是 V 。 (1<= V<=25)。

要构造的数量钱是 N 。 (1<= N<=10,000)。

第 1 行: 二整数, V 和 N

第 2 ...V+1行:可用的货币 V 个整数(每行一个,每行没有其它的数)。

输出格式

输出到文件 money.out 中。

一行包含那个可能的构造的方案数。

样例

样例输入

3 10
1 2 5

样例输出

10