#include <iostream>
using namespace std;

int n, k, a;
int dp[101][1000001];
int pr[101][1000001];

int main()
{
	cin >> n >> k;
	
	dp[0][0] = 1;
	for(int i = 0; i <= n; i++)
	for(int j = 0; j <= k; j++)
	pr[i][j] = 1;
	
	for(int i = 1; i <= n; i++)
	{
		cin >> a;
		dp[i][0] = 1;
		for(int j = 1; j <= k; j++)
		{
			dp[i][j] = pr[i - 1][j];
			if(j - a - 1 >= 0)
				dp[i][j] = (dp[i][j] - pr[i - 1][j - a - 1] + int(1e9 + 7)) % int(1e9 + 7);
			pr[i][j] = (pr[i][j - 1] + dp[i][j]) % int(1e9 + 7);
		}
	}
	
	cout << dp[n][k] << endl;
}
