#include <bits/stdc++.h>
using namespace std;
long long int n, k;
long long int a[105];
long long int dp[1005][100005];
long long int go(int n, int l) {
  if (l == 0) {
    dp[n][l] = 1;
    return 1;
  }
  if (n < 1) return 0;
  if (n == 1 and l > a[1])
    return 0;
  else if (dp[n][l] != -1)
    return dp[n][l];
  else {
    long long int x = 0;
    for (int i = 0; i <= a[n]; i++) {
      x = x + go(n - 1, l - i) % 1000000007;
    }
    dp[n][l] = x;
    return x;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) cin >> a[i];
  memset(dp, -1, sizeof(dp));
  cout << go(n, k) << endl;
}
