#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
// Read segments with their original indices
vector<tuple<ll,ll,int>> seg(n);
for (int i = 0; i < n; i++) {
ll l, r;
cin >> l >> r;
seg[i] = make_tuple(r, l, i);
}
// Sort by right endpoint r
sort(seg.begin(), seg.end(),
[&](auto &a, auto &b){
return get<0>(a) < get<0>(b);
});
vector<ll> ans(n);
ll cur = 0;
bool ok = true;
// Greedily assign
for (auto &t : seg) {
ll r, l;
int idx;
tie(r, l, idx) = t;
ll x = max(cur + 1, l);
if (x > r) {
ok = false;
break;
}
ans[idx] = x;
cur = x;
}
if (!ok) {
cout << "NO\n";
} else {
cout << "YES\n";
// Print in original segment order
for (int i = 0; i < n; i++) {
cout << ans[i] << (i + 1 < n ? ' ' : '\n');
}
}
}
return 0;
}