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