#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int MAX_ = 40;typedef long long LL;int ans;LL comb[MAX_];int censor(LL cob){ int cnt = 0; for(; cob; cob>>=1){ cnt += (cob&1); } return cnt;}void dfs(int k, int i, LL cob){ if(k >= ans)ans = k; for(; i <= 36; i++){ if(censor(cob & comb[i]) >= k+1){ dfs(k+1,i+1,cob&comb[i]); } }}int main(){ int Case, n, s,d; scanf("%d",&Case); while(Case--){ scanf("%d",&n); ans = 0; memset(comb,0,sizeof(comb)); for(int i = 0; i < n; i++){ scanf("%d%d",&s,&d); comb[s] |= (1LL << d); } dfs(0,1,(1LL<<36) -1); printf("%dn",ans); } return 0;}