#include <bits/stdc++.h>
using namespace std;
int n, d1, d2;
bool d[400001];
int a[200001];
int nextprime(int x) {
  for (int i = x + 1; i <= 2 * n; ++i)
    if (d[i]) return i;
  return 2 * n + 1000000;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  int x;
  for (int i = 1; i <= n; ++i) {
    cin >> x;
    d1 += x == 1;
    d2 += x == 2;
  }
  memset(d, sizeof(d), 0);
  for (int i = 2; i <= 2 * n; ++i) {
    bool f = 1;
    for (int j = 2; j * j <= i; ++j)
      if (i % j == 0) {
        f = 0;
        break;
      }
    d[i] = f;
  }
  int prime = 0;
  int t = n;
  while (n > 0) {
    int tmp = nextprime(prime);
    while (tmp - prime >= 2 && d2 > 0 && n > 0) prime += 2, d2--, a[n] = 2, n--;
    while (tmp - prime >= 1 && d1 > 0 && n > 0) prime += 1, d1--, a[n] = 1, n--;
    while (tmp - prime >= 1 && d1 == 0 && d2 > 0)
      prime += 2, d2--, a[n] = 2, n--;
  }
  for (int i = t; i > 0; --i) cout << a[i] << ' ';
}
