#include <bits/stdc++.h>
using namespace std;
const int MOD = (int)1e9 + 7;
class BIT {
 private:
  vector<long long> _bit;
  int _n;

 public:
  BIT(int n) : _n(n) { _bit.resize(n + 1); }
  void add(int i, long long x) {
    for (int j = i; j <= _n + 1; j += j & -j) _bit[j] = (x + _bit[j]) % MOD;
  }
  long long sum(int i) {
    long long res = 0;
    for (int j = i; j > 0; j -= j & -j) res = (res + _bit[j]) % MOD;
    return res;
  }
};
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  int n, k;
  cin >> n >> k;
  vector<int> a(n);
  for (int i = 0; i < (int)(n); ++i) cin >> a[i];
  vector<BIT> bits(n + 1, BIT(k));
  bits[0].add(0 + 1, 1);
  for (int i = (1); i <= (int)(n); ++i)
    for (int j = (0); j <= (int)(k); ++j) {
      long long sum =
          bits[i - 1].sum(j + 1) - bits[i - 1].sum(max(j - a[i - 1], 0));
      bits[i].add(j + 1, (sum + MOD) % MOD);
    }
  cout << (bits[n].sum(k + 1) - bits[n].sum(k) + MOD) % MOD << '\n';
  return 0;
}
