#include <bits/stdc++.h>
using namespace std;
int n;
int dp[101][100001] = {0};
long long func(int i, int k, int* a) {
  if (k == 0) return 1;
  if (i == n + 1) return 0;
  if (dp[i][k] != 0) return dp[i][k];
  for (int j = 0; j <= a[i]; j++) {
    if (k >= j)
      dp[i][k] = (dp[i][k] + func(i + 1, k - j, a)) % 1000000007;
    else
      break;
  }
  return dp[i][k];
}
int main() {
  cin >> n;
  int k;
  cin >> k;
  int a[n + 1];
  for (int i = 1; i <= n; i++) cin >> a[i];
  cout << func(1, k, a) % 1000000007;
}
