#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
const int MOD = 1e6 + 7;
int n,m,a[105];
int f[105][105];
int sum[105][105];
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++)
cin >> a[i];
for(int j = 0;j <= n;j++)
f[j][0] = 1;
for(int j = 0;j <= n;j++)
for(int i = 0;i <= m;i++)
sum[j][i] = 1;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= m;j++){
f[i][j] = (sum[i - 1][j - 1] + MOD - sum[i - 1][j - min(a[i],j) - 1]) % MOD;
sum[i][j] = (sum[i][j - 1] + f[i][j]) % MOD;
}
}
cout << f[n][m];
return 0;
}