#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define mp make_pair
const int N=3050;
const int M=100050;
const int mod=1e9+7;
void add(int &a, int b)
{ a+=b;if(a>=mod) a-=mod;}
void sub(int &a, int b)
{ a-=b;if(a<0) a+=mod;}
int a[N];
int dp[M];
int main()
{
int n,k;
scanf("%i %i",&n,&k);
for(int i=1;i<=n;i++)
scanf("%i",&a[i]),a[i]++;
dp[0]=1;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=k;j++)
add(dp[j],dp[j-1]);
for(int j=k;j>=0;j--)
if(j>=a[i])
sub(dp[j],dp[j-a[i]]);
}
printf("%i",dp[k]);
return 0;
}