#include <bits/stdc++.h>
using namespace std;
int n, k;
long long dp[110][100010];
bool mark[110][100010];
long long d[110];
long long modul = 1000000007;
long long resi(int n, int k) {
  if (k < 0) return 0;
  if (k == 0) return 1;
  if (n == 0) return k == 0;
  if (mark[n][k]) return dp[n][k];
  mark[n][k] = true;
  long long tekp = 0;
  for (int i = 0; i <= d[n]; i++) tekp = (tekp + resi(n - 1, k - i)) % modul;
  dp[n][k] = tekp;
  return tekp;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 1; i <= n; i++) cin >> d[i];
  cout << resi(n, k);
  return 0;
}
