#include <bits/stdc++.h>
using namespace std;
#define int long long
struct node{
	int x, y, id;
	bool operator <(const node& W) const{
		if (W.x != x) return x < W.x;
		else return y < W.y;
	}
};

void work() {
	int n;
	cin >> n;
	vector<node> v(n);
	for (int i = 0; i < n; i++) {
		int x, y;
		cin >> x >> y;
		if (x > y) swap(x, y);
		v[i] = {x, y, i + 1};
	}
	sort(v.begin(), v.end());
	vector<int> res(n + 1);
	int pos = -1;
	
	for (int i = 0; i < v.size(); i++) {
		int j = i;
		while (j < v.size() && v[i].x == v[j].x) j++;
		j--;
		if (pos == -1) for (int k = i; k <= j; k++) res[v[k].id] = -1;
		else {
			for (int k = i; k <= j; k++) 
				if (v[k].y > v[pos].y) res[v[k].id] = v[pos].id;
				else res[v[k].id] = -1;
		}
		if (pos == -1) pos = 0;
		else if (v[i].y < v[pos].y) pos = i;
		i = j;
	}
	
	for (int i = 1; i < res.size(); i++) cout << res[i] << " ";
	cout << endl;
}
int32_t main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int cas;
	cin >> cas;
	while (cas--) work();
	return 0;
}