#include <bits/stdc++.h>
using namespace std;
long long expo(long long a, long long b, long long m) {
  if (a == 0) return 1;
  long long res = 1;
  while (b) {
    if (b % 2 == 1) res = ((res % m) * (a % m)) % m;
    a = ((a % m) * (a % m)) % m;
    b /= 2;
  }
  return res % m;
}
long double expo2(long double a, long long b) {
  long double res = 1;
  while (b) {
    if (b % 2 == 1) res = (res * a);
    a = (a * a);
    b /= 2;
  }
  return res;
}
const long long mod = 1e9 + 7;
int main() {
  long long t;
  cin >> t;
  while (t--) {
    long long n;
    cin >> n;
    long long a[n], i;
    vector<pair<pair<long long, long long>, long long>> v(n);
    for (i = 0; i <= n - 1; i++) {
      cin >> v[i].first.first >> v[i].first.second;
      v[i].second = i;
    }
    sort(v.begin(), v.end());
    vector<long long> vv;
    long long prev = v[0].first.second, curr = 0;
    a[v[0].second] = 0;
    for (i = 1; i < n; i++) {
      if (v[i].first.first <= prev) {
        prev = max(v[i].first.second, prev);
        a[v[i].second] = curr;
      } else {
        curr++;
        a[v[i].second] = curr;
        prev = v[i].first.second;
      }
    }
    if (curr == 0) {
      cout << -1 << endl;
    } else {
      for (i = 0; i < n; i++) {
        if (a[i] == 0)
          cout << 1 << " ";
        else
          cout << 2 << " ";
      }
      cout << endl;
    }
  }
}
