#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, k;
  cin >> n >> k;
  if (k == 0) return 1;
  int a[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  long long int dp[n + 1][n + 1];
  memset(dp, 0, sizeof(dp));
  for (int i = n; i > 0; i--) {
    for (int k1 = 1; k1 <= k; k1++) {
      for (int x = 1; x <= min(k1, a[i - 1]); x++) {
        if (i == n)
          dp[x][i] = 1;
        else {
          dp[k1][i] += dp[k1 - x][i + 1];
          dp[k1][i] = dp[k1][i] % 1000000007;
        }
      }
    }
  }
  return dp[k][1];
}
