#include <bits/stdc++.h>
using namespace std;
const int p = 1000000007;
long long quick_mod(long long a, long long b) {
  long long ans = 1;
  a %= p;
  while (b) {
    if (b & 1) {
      ans = ans * a % p;
      b--;
    }
    b >>= 1;
    a = a * a % p;
  }
  return ans;
}
long long C(long long n, long long m) {
  if (m > n) return 0;
  long long ans = 1;
  for (int i = 1; i <= m; i++) {
    long long a = (n + i - m) % p;
    long long b = i % p;
    ans = ans * (a * quick_mod(b, p - 2) % p) % p;
  }
  return ans;
}
long long Lucas(long long n, long long m) {
  if (m == 0) return 1;
  return C(n % p, m % p) * Lucas(n / p, m / p) % p;
}
int main() {
  long long ans = 1;
  int n, cnt, x;
  scanf("%d%d", &n, &cnt);
  for (int i = 2; i <= n; i++) {
    scanf("%d", &x);
    long long t = C(cnt + x - 1, x - 1) % p;
    ans = ans * t % p;
    cnt += x;
  }
  printf("%d", ans);
  return 0;
}
