#include <bits/stdc++.h>
using namespace std;
struct node {
  int l;
  int r;
  int num;
  int ans;
};
bool cmp1(node a, node b) {
  if (a.l != b.l)
    return a.l < b.l;
  else {
    return a.r < b.r;
  }
}
bool cmp2(node a, node b) { return a.num < b.num; }
int main() {
  int T;
  cin >> T;
  for (int w = 0; w < T; w++) {
    int n;
    cin >> n;
    node x[n];
    for (int i = 0; i < n; i++) {
      cin >> x[i].l >> x[i].r;
      x[i].num = i;
    }
    sort(x, x + n, cmp1);
    int q1 = 0;
    x[0].ans = 1;
    q1 = x[0].r;
    bool y = 0;
    for (int i = 1; i < n; i++) {
      if (x[i].l > q1 && !y) {
        x[i].ans = 2;
        y = 1;
      } else if (y) {
        x[i].ans = 2;
      } else {
        x[i].ans = 1;
        q1 = max(q1, x[i].r);
      }
    }
    if (y) {
      sort(x, x + n, cmp2);
      for (int i = 0; i < n; i++) {
        cout << x[i].ans << ' ';
      }
      cout << endl;
    } else {
      cout << -1 << endl;
    }
  }
  return 0;
}
