#include <bits/stdc++.h>
using namespace std;
long long fact[2500], ifact[2500], arr[2500], su, way = 1;
long long pow_mod(long long A, long long B) {
  long long res = 1;
  while (B) {
    if (B & 1) {
      res = ((res * A) % 1000000007);
    }
    A = ((A * A) % 1000000007);
    B >>= 1;
  }
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  long long i, j, N;
  fact[0] = 1;
  for (i = 1; i <= 2200; ++i) {
    fact[i] = ((fact[i - 1] * i) % 1000000007);
  }
  ifact[2200] = pow_mod(fact[2200], 1000000007 - 2);
  for (i = 2199; i >= 0; --i) {
    ifact[i] = ((ifact[i + 1] * (i + 1)) % 1000000007);
  }
  cin >> N;
  for (i = 0; i <= N - 1; ++i) {
    cin >> arr[i];
  }
  su = arr[0];
  for (i = 1; i <= N - 1; ++i) {
    way = ((way * ((((fact[su + arr[i] - 1] * ifact[arr[i] - 1]) % 1000000007) *
                    ifact[su]) %
                   1000000007)) %
           1000000007);
    su += arr[i];
  }
  cout << way;
  return 0;
}
