#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;
const long double PI = 3.141592653589793238L;
int tt, n, k, inp, a, b, x, m;
void pv(vector<int> a) {
  for (auto i : a) cout << i << ' ';
  cout << '\n';
}
void pp(vector<pair<int, int>> a) {
  for (auto i : a) cout << i.first << ' ' << i.second << '\n';
}
void copy(vector<int>& a, vector<int>& b) {
  b[0] = a[0];
  for (int i = 1; i < a.size(); i++) {
    b[i] = b[i - 1] + a[i];
  }
}
int main() {
  cin >> n >> k;
  k++;
  vector<int> a(n);
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  vector<int> dp(k);
  vector<int> dpold(k);
  dp[0] = 1;
  copy(dp, dpold);
  for (auto i : a) {
    for (int j = 0; j < k; j++) {
      dp[j] = dpold[j] - dpold[max(0, j - i)];
      if (max(0, j - i) == 0)
        dp[j] += dpold[0];
      else
        dp[j] += dpold[j - i] - dpold[j - i - 1];
    }
    copy(dp, dpold);
  }
  cout << dp[k - 1];
}
