#include <bits/stdc++.h>
using namespace std;
long long int TopDown(int a[], int n, int k, int i) {
  long long int dp[105][100005];
  memset(dp, -1, sizeof dp);
  if (i >= n) {
    return 0;
  }
  if (k == 0) return 1;
  if (dp[i][k] != -1) {
    return dp[i][k];
  }
  long long int ans = 0;
  for (int j = 0; j <= a[i]; j++) {
    ans = ans + TopDown(a, n, k - j, i + 1);
  }
  return dp[i][k] = ans;
}
int main() {
  int n, k;
  cin >> n >> k;
  int a[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  cout << TopDown(a, n, k, 0);
}
