#include #include #include #include #include using namespace std; vector ve[105][15]; map mp; int main() { int T; scanf("%d", &T); while (T--) { mp.clear(); int n; scanf("%d", &n); for (int i = 1; i <= 100; i++) for (int j = 1; j <= 10; j++) ve[i][j].clear(); for (int i = 1; i <= n; i++) { int len; cin >> len; for (int j = 1; j <= len; j++) { int t, p; scanf("%d%d", &t, &p); ve[t][p].push_back(i); } } mp[1] = 1; for (int i = 1; i <= 100; i++) { for (int j = 1; j <= 10; j++) { int flag = 0; if (!ve[i][j].size()) continue; for (auto c : ve[i][j]) if (mp.count(c)) flag = 1; if (flag) { for (auto c : ve[i][j]) mp[c] = 1; } } } set ans; for (auto it : mp) ans.insert(it.first); bool f = false; for (auto c : ans) { if (!f) cout << c; else cout << " " << c; f = true; } cout << endl; } }