#include <bits/stdc++.h>
using namespace std;
#define fastio ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define int long long
int n, k;
vector<int>v;
int dp[105][100000];

int func(int i, int calc)
{
    if(dp[i][calc]!=-1) return dp[i][calc];
    if(calc>100000) return 0;
    if(i==n) {
        if(calc==k) return 1;
        return 0;
    }
    int ans=0;
    for(int j=0; j<=v[i]; j++) {
        ans+=func(i+1, calc+j);
    }
    dp[i][calc]=ans%1000000007;
    return dp[i][calc];
}

main()
{
    fastio;
    cin>>n>>k;
    for(int i=0; i<n; i++) {
        int x;
        cin>>x;
        v.push_back(x);
    }
    memset(dp, -1, sizeof(dp));
    cout<<func(0, 0);
}