#include <bits/stdc++.h>
using namespace std;
vector<int> V_tmp;
vector<int>::iterator it;
long long g[120000], f[120];
int d[120000], e[120][120000], h[120];
int i, j, k, l, n;
long long s, t;
int main() {
  scanf("%d", &n);
  for (i = 1; i <= n; i++) scanf("%I64d", &g[i]), s = s ^ g[i];
  for (i = 60; i > 0; i--)
    if (!((1LL << (i - 1)) & s)) k++, h[k] = i;
  for (i = 60; i > 0; i--)
    if ((1LL << (i - 1)) & s) k++, h[k] = i;
  for (i = 1; i <= n; i++) {
    t = g[i];
    V_tmp.clear();
    for (j = 1; j <= k; j++)
      if (t & (1LL << (h[j] - 1)))
        if (f[j]) {
          t = t ^ f[j];
          V_tmp.push_back(j);
        } else {
          f[j] = t;
          for (it = V_tmp.begin(); it != V_tmp.end(); it++)
            for (l = 1; l <= n; l++) e[j][l] = e[j][l] ^ e[*it][l];
          e[j][i] = e[j][i] ^ 1;
          break;
        }
  }
  t = 0;
  for (i = 1; i <= k; i++)
    if ((!((1LL << (h[i] - 1)) & t)) && (f[i])) {
      t = t ^ f[i];
      for (j = 1; j <= n; j++) d[j] = d[j] ^ e[i][j];
    }
  for (i = 1; i <= n; i++)
    if (!d[i])
      printf("1 ");
    else
      printf("2 ");
  return 0;
}
