#include <bits/stdc++.h>
using namespace std;
long long dp[105][int(100005)], n, vet[int(100005)], paro, k;
long long sum[105];
const long long MOD = 10e9 + 7;
int main() {
  cin.tie(0), cout.tie(0), ios::sync_with_stdio(0);
  cin >> n >> k;
  for (int i = 1; i <= n; sum[i] = vet[i] + sum[i - 1], i++) cin >> vet[i];
  for (int i = 0; i <= 100; i++) dp[i][0] = 1;
  for (int i = n; i >= 1; i--) {
    for (int j = max((long long)(1), k - sum[i - 1]); j <= k; j++) {
      for (int z = 0; (z <= vet[i] && z <= j); z++)
        dp[i][j] += dp[i + 1][j - z] % MOD;
    }
  }
  cout << dp[1][k] % MOD << '\n';
}
