#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,s,t) for(register int i=s;i<=t;++i) #define _rep(i,s,t) for(register int i=s;i>=t;--i) #define Rep(i,s,t) for(register int i=s;i #define ms(f,x) memset(f,x,sizeof f) #define mc(f,x) memcpy(f,x,sizeof f) #define open(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout) #define gi(x) read(x) #define gii(x,y) read(x),read(y) #define giii(x,y,z) read(x),read(y),read(z) namespace IO { #define gc getchar() #define pc(x) putchar(x) templateinline void read(T &x) { x=0; int f=1; char ch=gc; while(ch>'9'||ch<'0') { if(ch=='-')f=-1; ch=gc; } while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+ch-'0',ch=gc; x*=f; return; } templateinline void write(T x=0) { T wr[51]; wr[0]=0; if(x<0)pc('-'),x=-x; if(!x)pc(48); while(x)wr[++wr[0]]=x%10,x/=10; while(wr[0])pc(48+wr[wr[0]--]); return; } } using IO::read; using IO::write; typedef long long ll; typedef double db; typedef long double ld; typedef unsigned long long ull; using namespace std; const int N=1e6+11; int b[N]; int a[101][11],ans[N]; int las[101][11]; int nxt[N],to[N]; int n,T,x; int tot,s,t,cnt; ll sum; void add(int t,int p,int x){ nxt[++cnt]=las[t][p]; las[t][p]=cnt; to[cnt]=x; } int main(){ gi(T); while(T--){ tot=0; cnt=0; gi(n); rep(i,1,100) rep(j,1,10) las[i][j]=a[i][j]=0; rep(i,1,n) b[i]=0; int t,p; rep(i,1,n){ gi(x); rep(j,1,x){ gi(t),gi(p); add(t,p,i); } } b[1]=1; rep(i,1,100) rep(j,1,10){ for(int e=las[i][j];e;e=nxt[e]) a[i][j]|=b[to[e]]; for(int e=las[i][j];e;e=nxt[e]) b[to[e]]|=a[i][j]; } rep(i,1,n) if(b[i]) ans[++ans[0]]=i; rep(i,1,ans[0]-1)printf("%d ",ans[i]); printf("%d\n",ans[ans[0]]);ans[0]=0; } return 0; } /* 4 6 6 4 1 2 3 4 1 2 3 1 2 1 */