#include <bits/stdc++.h>
using namespace std;
long long int dp[101][200001];
long long int mod = 1e9 + 7;
long long int func(long long int idx, long long int arr[], long long int n,
                   long long int k) {
  if (idx == n && k == 0) return 1;
  if (idx == n) return 0;
  if (k < 0) return 0;
  if (dp[idx][k] != -1) return dp[idx][k];
  long long int ans = 0;
  for (long long int i = 0; i <= min(k, arr[idx]); i++) {
    ans = (ans + func(idx + 1, arr, n, k - i)) % mod;
  }
  return dp[idx][k] = ans % mod;
}
int32_t main() {
  std::ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  ;
  long long int n;
  cin >> n;
  long long int k;
  cin >> k;
  long long int arr[n];
  for (long long int i = 0; i < n; i++) cin >> arr[i];
  memset(dp, -1, sizeof(dp));
  cout << func(0, arr, n, k) << endl;
}
