#include <bits/stdc++.h>
using namespace std;

const int N=1e5+5,zqm=1e9+7;
int f[N],pre[N];

int sum(int l,int r) {return (pre[r]-(l<=0 ? 0 : pre[l-1])+zqm)%zqm;}

int main() {
	//freopen("in.txt","r",stdin);
	//freopen("out.txt","w",stdout);
	
	int n,k; scanf("%d%d",&n,&k);
	f[0]=1,fill(pre,pre+k+1,1);
	for(int i=1,a;i<=n;++i) {
		scanf("%d",&a);
		for(int j=1;j<=k;++j) f[j]=sum(j-a,j);
		for(int j=1;j<=k;++j) pre[j]=(pre[j-1]+f[j])%zqm;
	}
	printf("%d\n",f[k]);
	
	return 0;
}
