#include<iostream>
#include <cstdio>
#include <memory.h>
#include <algorithm>
using namespace std;
#define MAXN 10050
struct Node{
int x,y;
}node[MAXN];
bool cmp(const Node& a,const Node& b){
if(a.y==b.y){
return a.x<b.x;
}
return a.y<b.y;
}
int main(){
int n,m,i,j,arr[MAXN],n_ans,flag,k;
cin>>n;
for(i=0;i<n;i++){
cin>>m;
for(j=0;j<m;j++){
cin>>node[j].x>>node[j].y;
}
memset(arr,0,sizeof(arr));
sort(node,node+m,cmp);
n_ans=0;
for(j=0;j<m;j++){
flag=0;
for(k=0;k<=n_ans;++k){
if(node[j].x>=arr[k]){
arr[k]=node[j].x;
flag=1;
break;
}
}
if(!flag){
++n_ans;
arr[n_ans]=node[j].x;
}
}
cout<<n_ans+1<<endl;
}
return 0;
}
sort函数的一些用法请见:http://zhidao.baidu.com/question/216527176.html