#include<stdio.h>
typedef struct
{
int l,r;
}ST;
ST stick[5005];
void qsort(int l,int r)//快速排序(多重比较)
{
int i,j;
ST x;
if(l<r)
{
i=l;
j=r;
x=stick[l];
while(i<j)
{
while(i<j&&(stick[j].l>x.l||(stick[j].l==x.l&&stick[j].r>=x.r)))
j--;
if(i<j)
stick[i++]=stick[j];
while(i<j&&stick[i].l<x.l)
i++;
if(i<j)
stick[j--]=stick[i];
}
stick[i]=x;
qsort(l,i-1);
qsort(i+1,r);
}
return ;
}
int main(void)
{
int i,j,n,N,count[5005],max=0;
scanf("%d",&N);
while(N--)
{
max=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&stick[i].l,&stick[i].r);
}
qsort(0,n-1);
for(i=0;i<n;i++) //求单调下降序列(从前往后)
{
count[i]=1;
for(j=0;j<i;j++)
{
if(count[i]<=count[j]&&stick[j].r>stick[i].r)
count[i]=count[j]+1;
}
if(max<count[i])
max=count[i];
}
printf("%d\n",max);
}
}