#include <bits/stdc++.h>
using namespace std;
long long int n, k;
long long int mod = 1000000007;
long long int arr[102];
long long int dp[100002][102];
long long int solve(long long int w, long long int i) {
  if (w == 0 and i == n) return 1;
  if (w < 0 || i > n) return 0;
  if (dp[w][i] == -1) {
    long long int z = 0;
    for (long long int j = 0; j <= arr[i]; j++) {
      z = (z % mod + solve(w - j, i + 1) % mod) % mod;
    }
    dp[w][i] = z;
  }
  return dp[w][i];
}
int main() {
  cin >> n >> k;
  for (long long int i = 0; i < n; i++) cin >> arr[i];
  memset(dp, -1, sizeof(dp));
  cout << solve(k, 0) << endl;
}
