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