#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")

#include "bits/stdc++.h"
#define dbg(x)        cout <<  "Line " << __LINE__ << ": " << #x << " = " << x << endl;
#define vec_dbg(v)    cout <<  "Line " << __LINE__ << ": " << #v << " = "; cout << "["; for(auto& i : v) cout << i << ", "; cout << "]"<< endl;
#define pair_dbg(v)     cout <<  "Line " << __LINE__ << ": " << #v << " = "; cout << "(" << v.first << ", " << v.second << ") " << endl;
#define vec_bool_dbg(v) cout <<  "Line " << __LINE__ << ": " << #v << " = "; cout << "["; for(int i = 0; i < v.size(); i++) cout << v[i] << " "; cout << "]"<< endl;
#define vec_pair_dbg(v) cout <<  "Line " << __LINE__ << ": " << #v << " = "; cout << "["; for(auto& i : v) cout << "("<<i.first << ", " << i.second << "), "; cout << "]"<< endl;
#define arr_dbg(a)    cout <<  "Line " << __LINE__ << ": " << #a << " = "; for(int i = 0; i < sizeof(a)/sizeof(a[0]); i++) cout << a[i] << ", "; cout << endl;
#define rvec(arr) for (int i = 0; i < arr.size(); i++) cin >> arr[i];
#define ovec(arr) for (int i = 0; i < arr.size(); i++) cout << arr[i] << " "; cout << endl;
#define ll long long
#define ld long double
#define pb push_back
#define F first
#define S second
#define bp make_pair(-1,999999999999)
#define endl "\n"
#define int long long
#define trashPair make_pair(0,0)
#define ld long double
#define MOD 1000000007
#define GAY_MOD 998244353
#define X first
#define Y second
#define MAX_SIZE 10
# define PI 3.14159265358979323846
using namespace std;
void solve(){
    int n;
    cin >> n;
    vector<pair<pair<int,int>, int> >els(n);
    for (int i = 0; i < n; i++){
        int h,w;
        cin >> h >> w;
        if (w > h){
            swap(h,w);
        }
        els[i] = make_pair(make_pair(h,w),i);
    }
    sort(els.begin(),els.end());
    vector<int>ans(n,-1);
    priority_queue<pair<int,int> >q;
    vector<pair<int,int>>toAdd;
    for (int i = 0; i < n; i++){

        if (i != 0){
            if (els[i].F.F != els[i-1].F.F){

                for (int g = 0; g < toAdd.size(); g++){
                    q.push(toAdd[g]);
                }
                toAdd.resize(0);
            }
        }
        if (q.empty()){
            ans[els[i].S] = -1;
        } else {
            pair<int,int>top = q.top();

            if (-top.F < els[i].F.S){
                ans[els[i].S] = top.S+1;
            } else {
                ans[els[i].S] = -1;
            }
        }
        toAdd.push_back(make_pair(-els[i].F.S, els[i].S));
    }
    ovec(ans)
}


signed main() {
    //freopen("/Users/artembreznev/CLionProjects/cp/input.txt","r",stdin);
    //freopen("/Users/artembreznev/CLionProjects/cp/output.txt","w",stdout);
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int tt;
    cin >> tt;
    for (int i = 0 ; i < tt; i++){
        solve();
    }

}