#include <bits/stdc++.h>
#include <unordered_set>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
int t, n;
cin >> t;
while (t--) {
cin >> n;
unordered_set<int> set, possible, curr;
int temp = n;
int x;
vector<int> p;
while (temp--) {
cin >> x;
p.clear();
int y;
for (int i = 0; i < x; i++) {
cin >> y;
p.push_back(y);
set.insert(p[i]);
curr.insert(p[i]);
}
for (auto itr : set) {
if (curr.find(itr) == curr.end()) {
possible.insert(itr);
}
}
curr.clear();
}
for (int i = 0; i < x; i++) {
possible.insert(p[i]);
}
int c = 0;
for (auto itr : possible) {
if (c == n)
break;
cout << itr << " ";
}
cout << endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0Pgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbWFpbigpIHsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgaW50IHQsIG47CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBjaW4gPj4gbjsKICAgICAgICB1bm9yZGVyZWRfc2V0PGludD4gc2V0LCBwb3NzaWJsZSwgY3VycjsKICAgICAgICBpbnQgdGVtcCA9IG47CiAgICAgICAgaW50IHg7CiAgICAgICAgdmVjdG9yPGludD4gcDsKICAgICAgICB3aGlsZSAodGVtcC0tKSB7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICBwLmNsZWFyKCk7CiAgICAgICAgICAgIGludCB5OwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHg7IGkrKykgewogICAgICAgICAgICAgICAgY2luID4+IHk7CiAgICAgICAgICAgICAgICBwLnB1c2hfYmFjayh5KTsKICAgICAgICAgICAgICAgIHNldC5pbnNlcnQocFtpXSk7CiAgICAgICAgICAgICAgICBjdXJyLmluc2VydChwW2ldKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKGF1dG8gaXRyIDogc2V0KSB7CiAgICAgICAgICAgICAgICBpZiAoY3Vyci5maW5kKGl0cikgPT0gY3Vyci5lbmQoKSkgewogICAgICAgICAgICAgICAgICAgIHBvc3NpYmxlLmluc2VydChpdHIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGN1cnIuY2xlYXIoKTsKICAgICAgICB9CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4OyBpKyspIHsKICAgICAgICAgICAgcG9zc2libGUuaW5zZXJ0KHBbaV0pOwogICAgICAgIH0KICAgICAgICBpbnQgYyA9IDA7CiAgICAgICAgZm9yIChhdXRvIGl0ciA6IHBvc3NpYmxlKSB7CiAgICAgICAgICAgIGlmIChjID09IG4pCiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY291dCA8PCBpdHIgPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CiAgICByZXR1cm4gMDsKfQo=