#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
const int M = 1e5;
const int N = 2 * 1e6 + 5;
struct node {
  int ver, next;
} e[N];
int tot, head[N];
int v[N];
int n, m;
multimap<int, int> h;
void add(int x, int y) {
  e[++tot].ver = y;
  e[tot].next = head[x];
  head[x] = tot;
}
void dfs(int x, int color) {
  v[x] = color;
  for (int i = head[x]; i; i = e[i].next) {
    int y = e[i].ver;
    if (!v[y]) dfs(y, 3 - color);
  }
}
signed main() {
  cin >> n;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    add(i << 1, i << 1 | 1);
    add(i << 1 | 1, i << 1);
    h.insert(make_pair(x << 1, i << 1));
    h.insert(make_pair(y << 1 | 1, i << 1 | 1));
  }
  multimap<int, int>::iterator it = h.begin();
  for (int i = 0; i < n; i++) {
    int l = it->second;
    it++;
    int r = it->second;
    it++;
    add(l, r);
    add(r, l);
  }
  for (int i = 0; i < n; i++)
    if (!v[i << 1]) dfs(i << 1, 1);
  for (int i = 0; i < n; i++) printf("%d ", v[i << 1] - 1);
  return 0;
}
