Ta xét một hệ thống tiền tệ gồm \(n\) loại đồng xu với các mệnh giá (nguyên dương) khác nhau. Bạn hãy lập trình tính số cách khác nhau (không phân biệt thứ tự mệnh giá) để quy đổi một lượng tiền \(x\) bằng \(n\) loại đồng xu nói trên nhé! Vì kết quả có thể rất lớn nên bạn chỉ cần in ra phần dư của nó khi chia cho \(10^9+7\).
Ví dụ, nếu các đồng xu được biểu diễn bằng tập mệnh giá là \({2,3,5}\) và lượng tiền cần quy đổi là \(9\), ta có \(3\) cách sau đây:
- \(2+2+5\)
- \(3+3+3\)
- \(2+2+2+3\)
Input
- Dòng đầu chứa hai số nguyên dương \(n\) và \(x\) \(\left(1\leq n\leq 100, 1\leq x\leq 10^6\right)\).
- Dòng tiếp theo chứa \(n\) số nguyên dương phân biệt \(c_1, c_2,...,c_n\) \(\left(c_i \leq 10^6\right)\) thể hiện mệnh giá của các đồng xu trong hệ thống tiền tệ.
Output
- In ra một số nguyên duy nhất là kết quả cần tìm.
Ví dụ
Sample input 01
3 9
2 3 5
Sample output 01
3