///ELECTION POSTERS
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define f first
#define s second
using namespace std;
vector <pair<int,int> > segment;
vector <int> aux;
set <int> s;
int len,len2,w[80002],acum[300];
void paint(int l,int r,int color){
int in=l/len2,fin=r/len2;
if(r-l+1<=len2){
for(int i=l;i<=r;i++) w[i]=color;
return;
}
if(in*len2<l) in++;
for(int i=l; i<in*len2; i++) w[i]=color;
for(in; in<fin;in++) acum[in]=color;
for(int i=fin*len2; i<=r; i++) w[i]=color;
return;
}
int main() {
int t;
cin>>t;
while(t--){
int n,x,y;
scanf("%d",&n);
for(int i=0; i<n; i++){
scanf("%d%d",&x,&y);
segment.pb(mp(x,y));
s.insert(x);
s.insert(y);
}
for(auto i:s) aux.pb(i);
for(int i=0; i<n; i++){
int s1=segment[i].f,s2=segment[i].s;
segment[i].f=lower_bound(aux.begin(), aux.end(),s1)-aux.begin();
segment[i].s=lower_bound(aux.begin(), aux.end(),s2)-aux.begin();
}
len=s.size(),len2=sqrt(len);
for(int i=0;i<n;i++){
paint(segment[i].f,segment[i].s,i+1);
}
set <int> res;
for(int i=0;i<len;i++){
if(w[i]==0 and acum[i/len2]==0) continue;
res.insert(max(w[i],acum[i/len2]));
w[i]=0;
}
for(int i=0;i<(len+len2-1)/len2;i++) acum[i]=0;
printf("%d\n",res.size());
aux.clear();
segment.clear();
s.clear();
}
return 0;
}
Ly8vRUxFQ1RJT04gUE9TVEVSUwoKI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgZiBmaXJzdAojZGVmaW5lIHMgc2Vjb25kCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3IgPHBhaXI8aW50LGludD4gPiBzZWdtZW50Owp2ZWN0b3IgPGludD4gYXV4OwpzZXQgPGludD4gczsKaW50IGxlbixsZW4yLHdbODAwMDJdLGFjdW1bMzAwXTsKCgp2b2lkIHBhaW50KGludCBsLGludCByLGludCBjb2xvcil7CglpbnQgaW49bC9sZW4yLGZpbj1yL2xlbjI7CglpZihyLWwrMTw9bGVuMil7CgkJZm9yKGludCBpPWw7aTw9cjtpKyspIHdbaV09Y29sb3I7CgkJcmV0dXJuOwoJfQoJaWYoaW4qbGVuMjxsKSBpbisrOwoJZm9yKGludCBpPWw7IGk8aW4qbGVuMjsgaSsrKSB3W2ldPWNvbG9yOwoJZm9yKGluOyBpbjxmaW47aW4rKykgYWN1bVtpbl09Y29sb3I7Cglmb3IoaW50IGk9ZmluKmxlbjI7IGk8PXI7IGkrKykgd1tpXT1jb2xvcjsKCXJldHVybjsKfQoKaW50IG1haW4oKSB7CglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJaW50IG4seCx5OwoJCXNjYW5mKCIlZCIsJm4pOwoJCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJCXNjYW5mKCIlZCVkIiwmeCwmeSk7CgkJCXNlZ21lbnQucGIobXAoeCx5KSk7CgkJCXMuaW5zZXJ0KHgpOwoJCQlzLmluc2VydCh5KTsKCQl9IAoJCWZvcihhdXRvIGk6cykgYXV4LnBiKGkpOwoJCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJCWludCBzMT1zZWdtZW50W2ldLmYsczI9c2VnbWVudFtpXS5zOwoJCQlzZWdtZW50W2ldLmY9bG93ZXJfYm91bmQoYXV4LmJlZ2luKCksIGF1eC5lbmQoKSxzMSktYXV4LmJlZ2luKCk7CgkJCXNlZ21lbnRbaV0ucz1sb3dlcl9ib3VuZChhdXguYmVnaW4oKSwgYXV4LmVuZCgpLHMyKS1hdXguYmVnaW4oKTsKCQkJCgkJfQoJCWxlbj1zLnNpemUoKSxsZW4yPXNxcnQobGVuKTsKCQlmb3IoaW50IGk9MDtpPG47aSsrKXsKCQkJcGFpbnQoc2VnbWVudFtpXS5mLHNlZ21lbnRbaV0ucyxpKzEpOwoJCX0KCQlzZXQgPGludD4gcmVzOwoJCWZvcihpbnQgaT0wO2k8bGVuO2krKyl7CgkJCWlmKHdbaV09PTAgYW5kIGFjdW1baS9sZW4yXT09MCkgY29udGludWU7CgkJCXJlcy5pbnNlcnQobWF4KHdbaV0sYWN1bVtpL2xlbjJdKSk7CgkJCXdbaV09MDsKCQl9IAoJCWZvcihpbnQgaT0wO2k8KGxlbitsZW4yLTEpL2xlbjI7aSsrKSBhY3VtW2ldPTA7CgkJcHJpbnRmKCIlZFxuIixyZXMuc2l6ZSgpKTsKCQlhdXguY2xlYXIoKTsKCQlzZWdtZW50LmNsZWFyKCk7CgkJcy5jbGVhcigpOwoJfQoJcmV0dXJuIDA7Cn0=