#include<stdio.h> #include<algorithm> using namespace std; #define max(a,b) a>b?a:b struct point { int x,y,sheng,jiang; }p[10010]; bool cmp(const point a,const point b) { return a.x<b.x; } int n; int main() { int T; int i,j; int a; int m; scanf("%d",&T); while(T--) { m=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d%d",&p[i].x,&p[i].y); p[i].jiang=p[i].sheng=1; } sort(p,p+n,cmp); for(i=0;i<n;i++) { for(j=0;j<i;j++) { if(p[i].y>p[j].y&&p[i].sheng<p[j].sheng+1) p[i].sheng=p[j].sheng+1; if(p[i].y<p[j].y&&p[i].jiang<p[j].jiang+1) p[i].jiang=p[j].jiang+1; } m=max(m,p[i].sheng); m=max(m,p[i].jiang); } printf("%d\n",m); } return 0; }