# include using namespace std; # define rep(i,a,n) for (int i=a; i<=n; ++i) # define per(i,a,n) for (int i=a; i>=n; --i) # define bug puts("H"); # define pb push_back # define mp make_pair # define all(x) (x).begin(), (x).end() # define SZ(x) (int)x.size() # define fi first # define se second # define lch p<<1,l,mid # define rch p<<1|1,mid+1,r # define mem(a,b) memset(a,b,sizeof(a)) # define INF 1000000001 # define MOD 1000000007 typedef vector Vi; typedef long long i64; typedef pair Pi; i64 powmod(i64 a, i64 b){i64 res=1;a%=MOD;assert(b>=0);for(;b;b>>=1){if(b&1)res=res*a%MOD;a=a*a%MOD;}return res;} i64 Inv(i64 b){return powmod(b,(i64)MOD-2);} const int N = 20005; const double eps = 1e-9; vector tp[105][15]; bool vis[N]; int main () { int T; scanf("%d", &T); while (T--) { int n; scanf("%d", &n); rep(i,1,n) vis[i] = false; vis[1] = true; rep(i,1,100) rep(j,1,10) tp[i][j].clear(); rep(i,1,n) { int len, t, p; scanf("%d", &len); rep(j,1,len) scanf("%d%d", &t, &p), tp[t][p].pb(i); } rep(i,1,100) { rep(j,1,10) { bool flag = false; for (auto k: tp[i][j]) { if (vis[k] == true) {flag = true; break;} } if (flag == true) { for (auto k: tp[i][j]) vis[k] = true; } } } vector ans; rep(i,1,n) if (vis[i] == true) ans.pb(i); int sz = SZ(ans); rep(i,0,sz-1) { printf(i != sz-1 ? "%d " : "%d\n", ans[i]); } } return 0; }