#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, k, i, j, p, flag;
  cin >> n >> k;
  long long a[n + 1];
  for (i = 1; i <= n; i++) cin >> a[i];
  long long dp[2][k + 1];
  for (i = 0; i <= 1; i++)
    for (j = 0; j <= k; j++) dp[i][j] = 0;
  long long sum[k + 1];
  flag = 1;
  for (i = 1; i <= n; i++) {
    sum[0] = 1;
    for (j = 1; j <= k; j++)
      sum[j] = sum[j - 1] + dp[flag ^ 1][j], sum[j] %= 1000000007;
    for (j = 1; j <= k; j++) {
      long long left = 0;
      if (j - a[i] - 1 >= 0) left = sum[j - a[i] - 1];
      long long right = sum[j];
      dp[flag][j] = right - left;
      dp[flag][j] %= 1000000007;
      if (dp[flag][j] < 0) dp[flag][j] += 1000000007;
    }
    flag ^= 1;
  }
  cout << dp[flag ^ 1][k];
}
