#include<cstdio>
#include<algorithm>

using namespace std;

int dp[150][150000];
int sum[150][150000];

const int MOD=1e9+7;

int main()
{
  int n=0,k=0;scanf("%d%d",&n,&k);for(int i=1;i<=n;i++)scanf("%d",&a[i]);
  dp[0][0]=1;for(int i=0;i<=k;i++)sum[0][i]=1;
  for(int i=1;i<=n;i++)
  {
    for(int j=0;j<=k;j++)
    {
      int l=max(0,j-a[i]);
      if(l==0)dp[i][j]=sum[i-1][j];
      else dp[i][j]=(sum[i-1][j]+MOD-sum[i-1][l-1])%MOD;
    }
    sum[i][0]=dp[i][0];for(int j=1;j<=k;j++)sum[i][j]=(sum[i][j-1]+dp[i][j])%MOD;
  }
  printf("%d",dp[n][k]);
  return 0;
}