#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int Mod=1e9+7;
const ll INF = 10000000000000;
const int N = 1e6+7;
void solve() {
ll n,x;
cin >> n >> x;
vector<ll> a(n+1);
for(int i=1;i<=n;i++) cin >> a[i];
vector<ll> dp(N,0);
sort(a.begin(),a.end());
for(int i=1;i<=n;i++) dp[a[i]]=1;
for(int i=1;i<N;++i){
for(int j=1;j<=n;j++){
if(dp[i]!=0){
if(i+a[j]<N) dp[i+a[j]]+=dp[i]%Mod;
}
}
}
cout << dp[x]%Mod;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
/*int t;
cin >> t;
while (t--)*/ solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTW9kPTFlOSs3Owpjb25zdCBsbCBJTkYgPSAxMDAwMDAwMDAwMDAwMDsKY29uc3QgaW50IE4gPSAxZTYrNzsKCnZvaWQgc29sdmUoKSB7CiAgIGxsIG4seDsKICAgY2luID4+IG4gPj4geDsKICAgdmVjdG9yPGxsPiBhKG4rMSk7CiAgIGZvcihpbnQgaT0xO2k8PW47aSsrKSBjaW4gPj4gYVtpXTsKICAgdmVjdG9yPGxsPiBkcChOLDApOwogICBzb3J0KGEuYmVnaW4oKSxhLmVuZCgpKTsKICAgZm9yKGludCBpPTE7aTw9bjtpKyspIGRwW2FbaV1dPTE7CiAgIGZvcihpbnQgaT0xO2k8TjsrK2kpewogICAgICBmb3IoaW50IGo9MTtqPD1uO2orKyl7CiAgICAgICAgaWYoZHBbaV0hPTApewogICAgICAgICAgICBpZihpK2Fbal08TikgZHBbaSthW2pdXSs9ZHBbaV0lTW9kOwogICAgICAgIH0KICAgICAgfQogICB9CiAgIGNvdXQgPDwgZHBbeF0lTW9kOwp9ICAgICAgIAoKaW50IG1haW4oKXsgCiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoJCiAgICAvKmludCB0OwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSovIHNvbHZlKCk7CiAgICAKCiAgICByZXR1cm4gMDsKfQo=