#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1000000007;
long long f[30];
long long inv[30];
long long C(long long m, long long n) {
  long long ret = 1;
  for (int i = 0; i < (n); i++) {
    ret = (m - i) % MOD * ret % MOD * inv[i + 1] % MOD;
  }
  return ret;
}
int main() {
  ios_base::sync_with_stdio(false);
  long long n;
  long long s;
  inv[1] = 1;
  for (int i = 2; i < 30; i++) inv[i] = inv[MOD % i] * (MOD - MOD / i) % MOD;
  while (cin >> n >> s) {
    for (int i = 0; i < (n); i++) {
      cin >> f[i];
    }
    long long ret = 0;
    for (int mask = 0; mask < (1 << n); mask++) {
      int t = 1;
      long long sum = s;
      for (int j = 0; j < (n); j++) {
        if ((mask >> j) & 1) {
          t = -t;
          sum -= f[j] + 1;
        }
      }
      if (sum < 0) continue;
      ret += 1LL * t * C(n + sum - 1, n - 1);
      ret += MOD;
      ret %= MOD;
    }
    cout << (ret + MOD) % MOD << endl;
  }
  return 0;
}
