#include <bits/stdc++.h>
using namespace std;
const long long int MAX = 1e5 + 5;
const long long int INF = 1e15 + 5;
const long long int MOD = 1e9 + 7;
long long int dp[MAX][102];
long long int a[102];
long long int n, k;
long long int calc(long long int pos, long long int rem) {
  if (pos == k) {
    if (!rem) return 1;
    return 0;
  }
  long long int &ans = dp[pos][rem];
  if (ans != 0) return ans;
  for (long long int i = 0; i <= a[pos]; i++) {
    if (rem >= i)
      ans = ((ans % MOD) + (calc(pos + 1, rem - i) % MOD)) % MOD;
    else
      break;
  }
  return ans % MOD;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  ;
  cin >> n >> k;
  if (k == 0) {
    cout << "1";
    return 0;
  }
  for (int i = 1; i <= n; i++) cin >> a[i];
  long long int val = calc(1, k) % MOD;
  cout << val << endl;
}
