#264. 货币系统 (money)

货币系统 (money)

Description

奶牛们不但创建了自己的政府,而且建立了自己的货币系统。这套货币是以反常的方式建立起来的,所以货币的面值相当奇快——习惯上,一套货币的面值应该是由 1,5,10,20 或 25,50 和 100 作为的单位组成才对,当然有时也会把 2 加入进来作为调剂。

奶牛想知道用一套货币表示一笔钱可以有多少种不同的方法。比如说,对于{1,2,5,10,…} 这套货币系统,可以用来表示 18 元的方法有 18 × 1,9 × 2,8 × 2 + 2 × 1,3 × 5+ 2 + 1,等等。 给定一套货币的面值,写一个程序来计算有多少方法来表示某笔钱。我们保证答案不会超过带符号的 long long 类型(C/C++)或 Int64 类型(Free Pascal)。

Format

Input

货币有 V (1 ≤ V ≤ 25)种,需要构造的钱的数目是 N (1 ≤ N ≤ 10000) 。 第一 行:两个正整数:V,N 。第二行至其余各行:V 个表示货币单位面值的整数(每行出现的 整数个数是不定的)

Output

第一行:用 V 种货币表示 N 元钱的方法总数

Samples

3 10
1 2 5
10

Limitation

1s, 1024KiB for each test case.