#include <bits/stdc++.h>
using namespace std;
int f[1000005], a, b, n;
int main() {
  scanf("%d", &n);
  for (int x, i = 1; i <= n; ++i) {
    scanf("%d", &x);
    if (x == 1) {
      ++a;
    } else {
      ++b;
    }
  }
  f[0] = 1;
  f[1] = 1;
  f[2] = 2;
  for (int i = 3; i <= a; ++i) {
    f[i] = (f[i - 1] + 1ll * (i - 1) * f[i - 2]) % 1000000007;
  }
  for (int i = 1; i <= b; ++i) {
    f[a] = 1ll * f[a] * (a + i) % 1000000007;
  }
  printf("%d", f[a]);
  return 0;
}
