Point: 100.0
Time limit: 1.0s
Memory limit: 256 M
Input: stdin
Output: stdout
Problem type

Sau kì nghỉ Tết, nhiều bạn so sánh tiền lì xì mà họ nhận được. Thấy vậy, giáo sư Việt Hùng đã cho các bạn một bài toán như sau:

Cho \(n\) đồng xu, mỗi đồng xu có giá trị \(a_i\). Thầy Hùng muốn các bạn tính số cách khác nhau để có thể tạo ra số tiền \(d\) bằng cách sử dụng số tiền đã cho.

Thầy cho 1 ví dụ như sau: Nếu số xu là \({2,3,5}\) và tổng mong muốn là 9 thì có 3 cách:

  • \({2+2+5}\)
  • \({3+3+3}\)
  • \({2+2+3+3}\)

Dữ liệu vào Specification:

  • Dòng đầu tiên chứa 2 số nguyên dương \(n\)\(d\) là số xu và số tiền mong muốn.
  • Dòng thứ 2 chứa \(n\) số nguyên dương \({a_1, a_2,..., a_n}\)

Dữ liệu ra Specification:

  • In ra kết quả bài toán (Vì kết quả lớn nên sẽ modulo cho \(10^9 + 7\))

Sample Input

3 9 
2 3 5

Sample Ouput

3

Giới hạn:

  • \(1 \le n \le 100\)
  • \(1 \le x \le 10^6\)
  • \(1 \le a_i \le 10^6\)