#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define mem(a,b) memset(a,b,sizeof(a)) bool ch[20005]; int main() { int t,n,m; int a,b; int aa,bb; cin >> t; while (t--) { mem(ch,0); ch[1]=1; aa=0; bb=0; scanf("%d",&n); vectorv[105][15]; vectorans; ans.push_back(1); for(int i=1;i<=n;++i) { cin >> m; for(int j=1;j<=m;++j) { scanf("%d %d",&a,&b); aa=max(aa,a); bb=max(bb,b); v[a][b].push_back(i); } } for(int i=1;i<=aa;++i) { for(int j=1;j<=bb;++j) { int flag=0; for(vector::iterator it=v[i][j].begin();it!=v[i][j].end();++it) { if(ch[*it]) { flag=1; break; } } if(flag) { for(vector::iterator it=v[i][j].begin();it!=v[i][j].end();++it) { if(!ch[*it]) { ans.push_back(*it); ch[*it]=1; } } } } } sort(ans.begin(),ans.end()); for(vector::iterator it=ans.begin();it!=ans.end();++it) { printf("%d", *it); if(it!=ans.end()-1)printf(" "); else cout << endl; } } return 0; }