#include <bits/stdc++.h>
using namespace std;
long long int dp[100001][101] = {}, ar[101], n, k;
long long int func(long long int r, long long int pos) {
  if (pos == n && r == 0) return 1;
  if (dp[r][pos] != 0) return dp[r][pos];
  for (long long int i = 0; i <= ar[pos]; i++) {
    if (r - i < 0) break;
    dp[r][pos] += func(r - i, pos + 1);
    dp[r][pos] %= 1000000007;
  }
  return dp[r][pos];
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  long long int i, j = 0, sum = 0;
  cin >> n >> k;
  for (i = 0; i < n; i++) cin >> ar[i];
  for (i = 0; i <= ar[0]; i++) {
    if (k - i < 0) break;
    sum += func(k - i, 1);
    sum %= 1000000007;
  }
  cout << sum;
  return 0;
}
