#include <iostream>
using namespace std;
int main() {
long long n,x;
cin>>n>>x;
long long a[n];
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
long long DP[x+1]={0};
DP[0]=1;
for(long long j=1;j<=x;j++)
{
for(long long i=0;i<n;i++)
{
if(j-a[i] >= 0)
{
DP[j]=(DP[j]+DP[j-a[i]])%1000000007;
}
}
}
cout<<DP[x]%1000000007<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkKCWxvbmcgbG9uZyBuLHg7CgljaW4+Pm4+Png7CgkKCWxvbmcgbG9uZyBhW25dOwoJZm9yKGxvbmcgbG9uZyBpPTA7aTxuO2krKykKCXsKCQljaW4+PmFbaV07Cgl9CgkKCWxvbmcgbG9uZyBEUFt4KzFdPXswfTsKCQoJRFBbMF09MTsKCQoJZm9yKGxvbmcgbG9uZyBqPTE7ajw9eDtqKyspCgl7CgkJZm9yKGxvbmcgbG9uZyBpPTA7aTxuO2krKykKCQl7CgkJCWlmKGotYVtpXSA+PSAwKQoJCQl7CgkJCQlEUFtqXT0oRFBbal0rRFBbai1hW2ldXSklMTAwMDAwMDAwNzsKCQkJfQoJCX0KCX0KCQkKCWNvdXQ8PERQW3hdJTEwMDAwMDAwMDc8PGVuZGw7CgkKCXJldHVybiAwOwp9