#include <iostream>#include <algorithm>#include <cstring>using namespace std;typedef struct Stick{ int len,wi;}Stick;int cmp(Stick x,Stick y){ if(x.len==y.len) { return x.wi<y.wi; } else { return x.len<y.len; }}Stick S[5050];int main(){ int t; cin>>t; while(t--) { int n; cin>>n; for(int i = 1;i<=n;i++) { cin>>S[i].len>>S[i].wi; } sort(S+1,S+n+1,cmp); int dp[5010]; memset(dp,0,sizeof(dp)); for(int i = 2;i<=n;i++) { int max = 1; for(int k = 1;k<i;k++) { if(S[i].wi<S[k].wi) { if(max<dp[k]+1) max = dp[k]+1; } } dp[i] = max; } int max = 0; for(int i = 1;i<=n;i++) { if(dp[i]>max) max = dp[i]; } cout<<max<<endl; } return 0;}