#include <bits/stdc++.h>
using namespace std;
long long int dp[110][100010];
long long int n;
long long int a[100000];
long long int find(long long int i, long long int k) {
  if (i == n) {
    if (k == 0) {
      return 1;
    } else {
      return 0;
    }
  }
  if (dp[i][k] != -1) {
    return dp[i][k];
  }
  long long int count = 0;
  for (int j = 0; j <= a[i]; j++) {
    if (k - j >= 0) {
      count += find(i + 1, k - j);
      count = count % 1000000007;
    }
  }
  return dp[i][k] = count;
}
int main() {
  long long int k;
  cin >> n >> k;
  for (long long int(i) = (0); (i) < (n); (i)++) {
    cin >> a[i];
  }
  for (long long int(i) = (0); (i) < (n); (i)++) {
    for (long long int(j) = (0); (j) < (k + 1); (j)++) {
      dp[i][j] = -1;
    }
  }
  cout << find(0, k) % 1000000007 << endl;
}
