#include <bits/stdc++.h>
using namespace std;
long long n, k, dp[101][100005], a[100005];
long long f(long long idx, long long rem) {
  long long i, j;
  if (rem < 0) return 0;
  if (idx < 0) return (rem == 0);
  long long ans = 0;
  if (dp[idx][rem] != -1) return dp[idx][rem];
  for (i = 0; i <= min(rem, a[idx]); i++) {
    ans = (ans + f(idx - 1, rem - i)) % 1000000007;
  }
  return dp[idx][rem] = ans % 1000000007;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  long long i, j;
  for (i = 0; i < n; i++) cin >> a[i];
  memset(dp, -1, sizeof dp);
  cout << f(n - 1, k) % 1000000007;
  return 0;
}
