#include <bits/stdc++.h>
using namespace std;
long long mod = 1000000007;
long long fact[1000001];
long long ifact[1000001];
long long pow(long long a, long long b, long long mod) {
  if (b == 0) return 1;
  long long temp = pow(a, b / 2, mod);
  temp *= temp;
  temp %= mod;
  if (b % 2) {
    return (temp * a) % mod;
  }
  return temp;
}
void calfact(int n) {
  fact[0] = 1;
  int i;
  for (i = 1; i <= n; i++) {
    fact[i] = (fact[i - 1] * i) % mod;
  }
  long long ilast = (i * fact[i - 1]) % mod;
  ilast = pow(ilast, mod - 2, mod);
  ifact[n] = (ilast * (n + 1)) % mod;
  for (i = n - 1; i >= 0; i--) {
    ifact[i] = ((i + 1) * ifact[i + 1]) % mod;
  }
}
long long nCr(long long n, long long r) {
  return (((fact[n] * ifact[r]) % mod) * ifact[n - r]) % mod;
}
int a[1004];
int main() {
  ios_base::sync_with_stdio(false);
  int i, j, k, m, x, t, y, n, flag;
  cin >> k;
  for (i = 0; i < k; i++) cin >> a[i];
  calfact(1000000);
  long long ans = 1;
  long long sum = a[0];
  for (i = 1; i < k; i++) {
    ans *= nCr(a[i] - 1 + sum, sum);
    ans %= mod;
    sum += a[i];
  }
  cout << ans;
  return 0;
}
