#include <bits/stdc++.h>
#define int long long
#define mod 1000000007
using namespace std;
int n,s,a[105],dp[105][100005];
main(){
    cin>>n>>s;
    for(int k=1;k<=n;k++)
        cin>>a[k];
    vector <int> v;
for(int k=0;k<=min(s,a[1]);k++)
    dp[1][k]=1%mod;
v.push_back(dp[1][0]);
for(int k=1;k<=s;k++){
    v.push_back((v[v.size()-1]%mod+dp[1][k]%mod)%mod);
}


for(int k=2;k<=n;k++){
        vector <int> p;
  int sum=0;
for(int i=0;i<=s;i++){
 int t=max((int)0,i-a[k]);
if(t==0)
    dp[k][i]=v[i]%mod;
else
 dp[k][i]=(v[i]-v[t-1])%mod;
 sum+=dp[k][i]%mod;
 sum%=mod;
 p.push_back(sum);
}
v.resize(0);
v=p;
}

cout<<dp[n][s]%mod;
return 0;
}
