#include <bits/stdc++.h>
using namespace std;
#define mod(x) x%(int)(1e9+7)

int main() {
    int n=0,K=0;
	cin>>n>>K;
	long long arr[n];
	memset(arr,0,sizeof(arr));
	for(int i=0;i<n;i++) cin>>arr[i];
    int dp[n][K+1]={0};
	memset(dp,0,sizeof(dp));
	vector<vector<long long>> prefixSum(n,vector<long long>(K+1,0));
	for(int i=0;i<n;i++){
		for(int k=0;k<=K;k++){
			// cout<<"k = "<<k<<endl;
			if (i==0){
			    if (arr[i]>=k)	 
			      dp[i][k]=1;
			}
			else{
	          if (k-arr[i]>0)
			     dp[i][k]=mod(prefixSum[i-1][k]-prefixSum[i-1][k-arr[i]-1]);
			  else dp[i][k]=mod(prefixSum[i-1][k]);	
			}
			if (k==0)
			   prefixSum[i][k]=dp[i][k];
			else prefixSum[i][k]=dp[i][k]+prefixSum[i][k-1];
		}
	}
	cout<<dp[n-1][K]<<endl;
	return 0;
}