#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N=10000;
struct
{
int l,r;
}a[10000+5];
int x[3*N],cnt,to[10000005],flag;
struct Tree
{
int left,right;
int use;
}tree[1000000];
void build(int id,int l,int r)
{
tree[id].left=l;
tree[id].right=r;
tree[id].use=0;
if (l!=r)
{
int mid=(l+r)/2;
build(id*2,l,mid);
build(id*2+1,mid+1,r);
}
}
void update(int id,int l,int r)
{
if (l<=tree[id].left&&tree[id].right<=r)
tree[id].use=1;
else if(tree[id].use==1) return ;
else
{
int mid=(tree[id].left+tree[id].right)/2;
if (l<=mid) update(id*2,l,r);
if(r>mid) update(id*2+1,l,r);
if(!tree[id*2].use||!tree[id*2+1].use)
tree[id].use=0;
else
tree[id].use=1;
}
}
void query(int id,int l,int r)
{
if (tree[id].left==l&&tree[id].right==r)
{
if(tree[id].use==0)
flag=1;
return ;
}
else if(tree[id].use==1) return ;
else
{
int mid=(tree[id].left+tree[id].right)/2;
if (r<=mid)
query(id*2,l,r);
else if (l>mid)
query(id*2+1,l,r);
else
{
query(id*2,l,mid);
query(id*2+1,mid+1,r);
}
}
}
int main()
{
int _,i,n,m,ans,l,r;
scanf("%d",&_);
while(_--)
{
scanf("%d",&n);
for(i=0,cnt=0;i<n;i++)
{
scanf("%d%d",&a[i].l,&a[i].r);
x[cnt++]=a[i].l;
x[cnt++]=a[i].r;
}
sort(x,x+cnt);
for(i=1,m=1;i<cnt;i++)
if(x[i]!=x[i-1])
x[m++]=x[i];
to[x[0]]=1;
for(i=1,cnt=2;i<m;i++)
{
if(x[i]!=x[i-1]+1)
cnt++;
to[x[i]]=cnt++;
}
build(1,1,cnt);
ans=0;
for(i=n-1;i>=0;i--)
{
l=to[a[i].l];
r=to[a[i].r];
flag=0;
query(1,l,r);
ans+=flag;
update(1,l,r);
}
printf("%d\n",ans);
}
return 0;
}