#include <bits/stdc++.h>
using namespace std;
double PI = acos(-1);
int n, k, arr[105];
int const N = 1e9 + 7;
long long fact[1000000];
long long power(long long x, long long y) {
  long long res = 1;
  x = x % N;
  while (y > 0) {
    if (y & 1) res = (res * x) % N;
    y = y >> 1;
    x = (x * x) % N;
  }
  return res;
}
void fac() {
  fact[0] = 1, fact[1] = 1;
  for (int i = 2; i < 1000000; i++) {
    fact[i] = (fact[i - 1] * i) % N;
  }
}
long long ncr(long long x, long long y) {
  return fact[x] * power(fact[x - y], N - 2) % N * power(fact[y], N - 2) % N;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  fac();
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> arr[i];
  long long x = ncr(n + k - 1, k);
  long long y = 0;
  for (int i = 0; i < n; i++) {
    for (int j = k; j > arr[i]; j--) {
      y += ncr(n - 1 + k - j - 1, k - j);
      if (y > N) y = y % N;
    }
  }
  long long ans = (x - y + N) % N;
  cout << 0 << '\n';
  return 0;
}
