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