#include<bits/stdc++.h>
using namespace std;
#define N 100055
#define ll long long
int n,k, dp[N], ar[N],pre[N];
const int mod = 1e9+7;
void mod_add(int &a, int b) {
    a += b;
    while(a>mod)
        a-=mod;
    while(a<0)
        a+=mod;
}
int main() {

    scanf("%d%d",&n,&k);
    for(int i=1; i<=n; ++i) {
        scanf("%d",&ar[i]);
    }
    dp[0] = 1;
    for(int i = 1 ; i<=n; ++i) {
        for(int used = k; used>=0; --used) {
            int L = used + 1;
            int R = used + min(ar[i], k-used);
            mod_add(pre[L], dp[used]);
            if(R+1<=K)
                mod_add(pre[R+1], -dp[used]);
        }
        int ss = 0;
        for(int x=0; x<=k; ++x) {
            mod_add(ss, pre[x]);
            mod_add(dp[x], ss);
            pre[x]=0;
        }
    }
    cout << dp[k];
    return 0;
}
