#include
#include
int n;
int k;
int niza[105];
int dp[100005];
using namespace std;
int main()
{
cin>>n;
cin>>k;
int mod = 1e9 + 7;
for(int i=0; i>niza[i];
}
for(int j=0; j<=k; j++){
dp[j] = 0;
}
dp[0] = 1;
// dp[j] --> broj na nacini da stigneme so j candies
for(int i = 0; i < n; i++) {
vector pref_sum(k + 10, 0);
for(int j = k; j >= 0; j--) {
int x = j + 1, y = j + min(niza[i], k - j);
if(x <= y) {
pref_sum[x] += dp[j];
pref_sum[x] %= mod;
pref_sum[y + 1] -= dp[j];
if(pref_sum[y + 1] < 0) {
pref_sum[y + 1] += mod;
}
}
}
int sum = 0;
for(int j = 0; j <= k; j++) {
sum += pref_sum[j];
sum %= mod;
dp[j] += sum;
dp[j] %= mod;
}
}
cout << dp[k] << endl;
return 0;
}