#include <bits/stdc++.h>
using namespace std;
int n, k, x;
vector<int> a;
int dp[101][100002];
long long calc(int x, int t) {
  if (dp[x][t] != -1) return dp[x][t];
  if (t == 0) return 1;
  if (x == n - 1) return a[x] >= t;
  int ans = 0;
  for (int i = 0; i <= a[x]; i++) {
    if (t - i < 0) break;
    ans = (ans + calc(x + 1, t - i) % 1000000007) % 1000000007;
  }
  return dp[x][t] = ans;
}
int main() {
  cin.sync_with_stdio(0);
  cin.tie();
  cin.exceptions(cin.failbit);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> x;
    a.push_back(x);
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= k; j++) {
      dp[i][j] = -1;
    }
  }
  cout << calc(0, k);
}
