#include <bits/stdc++.h>
const int N = 100010;
using namespace std;
int n;
long long x[N], c, d[N], b[N];
bitset<N> a[71];
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%I64d", x + i);
  for (int i = 0; i < n; i++) {
    c ^= x[i];
    for (int j = 0; j < 63; j++) a[62 - j][i] = ((x[i] & (1ll << j)) > 0);
  }
  int tt = 0;
  for (int i = 0; i < 63; i++) {
    long long mask = 1ll << (62 - i);
    if ((c & mask) == 0) {
      a[69] = a[i];
      for (int j = i; j > tt; j--) a[j] = a[j - 1];
      a[tt++] = a[69];
    }
  }
  int t = 0;
  for (int i = 0; i < 63; i++) {
    if (i < tt) a[i][n] = 1;
    for (int j = 0; j < t; j++)
      if (a[i][d[j]]) a[i] ^= a[j];
    int p = 0;
    for (; p < n && !a[i][p]; p++)
      ;
    if (p == n)
      a[i][n] = 0;
    else {
      for (int j = 0; j < t; j++)
        if (a[j][p]) a[j] ^= a[i];
      d[t] = p;
      swap(a[t++], a[i]);
    }
  }
  while (t--) b[d[t]] = a[t][n];
  for (int i = 0; i < n; i++)
    if (b[i])
      cout << 1 << " ";
    else
      cout << 2 << " ";
  cout << endl;
  return 0;
}
