#include <bits/stdc++.h>
using namespace std;
void solve() {
int n;
if (!(cin >> n)) return;
multiset<int> s;
for (int i = 0; i < n; ++i) {
int l, r;
cin >> l >> r;
auto it = s.upper_bound(r);
if (it != s.end()) {
s.erase(it);
}
s.insert(l);
// Rozmiar zbioru s w każdym kroku to odpowiedź dla prefiksu o długości i+1.
cout << s.size() << (i == n - 1 ? "" : " ");
}
cout << "\n";
}
int main() {
// Te dwie linie są KLUCZOWE, żeby kod był szybki (wyłączają synchronizację z C)
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
if (cin >> t) {
while (t--) {
solve();
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOwogICAgaWYgKCEoY2luID4+IG4pKSByZXR1cm47CgogICAgbXVsdGlzZXQ8aW50PiBzOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgaW50IGwsIHI7CiAgICAgICAgY2luID4+IGwgPj4gcjsKCiAgICAgICAgYXV0byBpdCA9IHMudXBwZXJfYm91bmQocik7CiAgICAgICAgCiAgICAgICAKICAgICAgICBpZiAoaXQgIT0gcy5lbmQoKSkgewogICAgICAgICAgICBzLmVyYXNlKGl0KTsKICAgICAgICB9CgogICAgICAgIHMuaW5zZXJ0KGwpOwoKICAgICAgICAvLyBSb3ptaWFyIHpiaW9ydSBzIHcga2HFvGR5bSBrcm9rdSB0byBvZHBvd2llZMW6IGRsYSBwcmVmaWtzdSBvIGTFgnVnb8WbY2kgaSsxLgogICAgICAgIGNvdXQgPDwgcy5zaXplKCkgPDwgKGkgPT0gbiAtIDEgPyAiIiA6ICIgIik7CiAgICB9CiAgICBjb3V0IDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogICAgLy8gVGUgZHdpZSBsaW5pZSBzxIUgS0xVQ1pPV0UsIMW8ZWJ5IGtvZCBiecWCIHN6eWJraSAod3nFgsSFY3phasSFIHN5bmNocm9uaXphY2rEmSB6IEMpCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CgogICAgaW50IHQ7CiAgICBpZiAoY2luID4+IHQpIHsKICAgICAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgICAgIHNvbHZlKCk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIDA7Cn0=