#include std::vector T[110][13],G; bool flag[20010]; signed main() { int TT; for ( scanf("%d",&TT);TT--; ) { int n,len[20010]={0};scanf("%d",&n); for ( int i=1;i<=n;i++ ) { scanf("%d",&len[i]); for ( int j=1,t,p;j<=len[i];j++ ) scanf("%d%d",&t,&p),T[t][p].push_back(i); } for ( int i=1;i<=n;i++ ) flag[i]=0; flag[1]=1; for ( int t=1;t<=100;t++ ) for ( int p=1;p<=10;p++ ) { bool f=false; for ( int i=0;i<(int)T[t][p].size();i++ ) f|=flag[T[t][p][i]]; for ( int i=0;i<(int)T[t][p].size();i++ ) flag[T[t][p][i]]|=f; } // printf("ans::"); for ( int i=1;i<=n;i++ ) if ( flag[i] ) G.push_back(i); for ( int i=0;i<(int)G.size();i++ ) printf("%d%c",G[i]," \n"[i==(int)G.size()-1]); for ( int t=1;t<=100;t++ ) for ( int p=1;p<=10;p++ ) T[t][p].clear(); G.clear(); } }