有一个包含 n 种硬币的货币系统,每种硬币都有一个正整数面值,并且每种硬币都可以使用任意多枚。你的任务是统计用这些硬币凑出金额 x 的不同方案数。在本题中,硬币排列顺序不同的方案也被视为不同方案。
例如,硬币面值为 {2,3,5},目标金额为 9 时,共有下面 8 种方案:
- 2+2+5
- 2+5+2
- 5+2+2
- 3+3+3
- 2+2+2+3
- 2+2+3+2
- 2+3+2+2
- 3+2+2+2
输入格式
第一行包含两个整数 n,x,分别表示硬币种类数和目标金额。
第二行包含 n 个互不相同的整数 c1,c2,…,cn,表示各种硬币的面值。
输出格式
输出方案数对 109+7 取余后的结果。
3 9
2 3 5
8
2 13
5 11
0
3 16
5 1 6
116
说明/提示
数据范围与约定
- 1≤n≤100
- 1≤x≤106
- 1≤ci≤106