#include using namespace std; const int N = 2e4 + 20; vector a[110][11]; vector g[N]; vector ans; int flag[N], q[N]; int main() { int T; scanf("%d", &T); while(T--) { int n; scanf("%d", &n); for(int i = 1; i <= 100; i++) for(int j = 1; j <= 10; j++) a[i][j].clear(); for(int i = 1; i <= n; i++) { flag[i] = 0; int l; scanf("%d", &l); for(int j = 1; j <= l; j++) { int t, p; scanf("%d%d", &t, &p); a[t][p].push_back(i); } } int h = 0, l = 0; q[++l] = 1; flag[1] = 1; for(int i = 1; i <= 100; i++) { for(int i = 1; i <= n; i++) { g[i].clear(); } for(int j = 1; j <= 10; j++) for(int k = 1; k < a[i][j].size(); k++) { g[a[i][j][0]].push_back(a[i][j][k]); g[a[i][j][k]].push_back(a[i][j][0]); } h = 0; while(h < l) { int x = q[++h]; for(int i = 0 ; i < g[x].size(); i++) { int y = g[x][i]; if(!flag[y]) { flag[y] = 1; q[++l] = y; } } } } ans.clear(); for(int i = 1; i <= n; i++) if(flag[i]) { ans.push_back(i); } printf("%d", ans[0]); for(int i = 1; i < ans.size(); i++) { printf(" %d", ans[i]); } puts(""); } }