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