/*
INPUT:
1
3
John Doe
Jane Smith
Sirhan Sirhan
1 2 3
2 1 3
2 3 1
1 2 3
3 1 2
*/
#include <iostream>
#include <vector>
#include <sstream>
#include <query>
using namespace std;
int main()
{
std::queue<std::string> queue_ = {"11"};
int T;
cin >> T;
string endingSeperator = "";
while (T--)
{
int n;
cin >> n;
vector<string> names(n);
vector<bool> eliminated(n, false);
cin.ignore();
for (int i = 0; i < n; ++i)
getline(cin, names[i]);
string temp;
getline(cin, temp);
vector<vector<int> > ratings;
while (temp != "")
{
stringstream ss;
ss << temp;
vector<int> order(n);
for (int i = 0; i < n; ++i)
{
ss >> order[i];
--order[i];
}
ratings.push_back(order);
if (cin.eof())
break;
getline(cin, temp);
}
int numRatings = ratings.size();
vector<int> posInRatings(numRatings, 0);
int winner = -1;
vector<int> count(n, 0);
for (int i = 0; i < numRatings; ++i)
++count[ratings[i][0]];
while (winner == -1)
{
for (int i = 0; i < numRatings; ++i)
{
bool changed(false);
while (eliminated[ratings[i][posInRatings[i]]])
{
++posInRatings[i];
changed = true;
}
if (changed)
++count[ratings[i][posInRatings[i]]];
}
int highest(0);
int lowest(1000);
for (int i = 0; i < n; ++i)
{
if (eliminated[i])
continue;
if (count[i] > highest)
highest = count[i];
if (count[i] < lowest)
lowest = count[i];
}
if (highest == lowest || highest * 2 > numRatings)
winner = highest;
else
{
for (int i = 0; i < n; ++i)
if (count[i] == lowest)
eliminated[i] = true;
}
}
cout << endingSeperator;
endingSeperator = "\n";
for (int i = 0; i < n; ++i)
if (count[i] == winner && !eliminated[i])
cout << names[i] << '\n';
}
}
LyoKICAgIElOUFVUOgoxCgozCkpvaG4gRG9lCkphbmUgU21pdGgKU2lyaGFuIFNpcmhhbgoxIDIgMwoyIDEgMwoyIDMgMQoxIDIgMwozIDEgMgoqLwoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPHF1ZXJ5PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkKewoJc3RkOjpxdWV1ZTxzdGQ6OnN0cmluZz4gcXVldWVfID0geyIxMSJ9OwogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIAogICAgc3RyaW5nIGVuZGluZ1NlcGVyYXRvciA9ICIiOwogICAgCiAgICB3aGlsZSAoVC0tKQogICAgewogICAgICAgIGludCBuOwogICAgICAgIGNpbiA+PiBuOwogICAgICAgIAogICAgICAgIHZlY3RvcjxzdHJpbmc+IG5hbWVzKG4pOwogICAgICAgIHZlY3Rvcjxib29sPiBlbGltaW5hdGVkKG4sIGZhbHNlKTsKICAgICAgICAKICAgICAgICBjaW4uaWdub3JlKCk7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgICAgIGdldGxpbmUoY2luLCBuYW1lc1tpXSk7CiAgICAgICAgICAgIAogICAgICAgIHN0cmluZyB0ZW1wOwogICAgICAgIGdldGxpbmUoY2luLCB0ZW1wKTsKICAgICAgICAKICAgICAgICB2ZWN0b3I8dmVjdG9yPGludD4gPiByYXRpbmdzOwogICAgICAgIAogICAgICAgCiAgICAgICAgd2hpbGUgKHRlbXAgIT0gIiIpCiAgICAgICAgewogICAgICAgICAgICBzdHJpbmdzdHJlYW0gc3M7CiAgICAgICAgICAgIHNzIDw8IHRlbXA7CiAgICAgICAgICAgIHZlY3RvcjxpbnQ+IG9yZGVyKG4pOwogICAgICAgICAgICAKICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHNzID4+IG9yZGVyW2ldOwogICAgICAgICAgICAgICAgLS1vcmRlcltpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgcmF0aW5ncy5wdXNoX2JhY2sob3JkZXIpOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYgKGNpbi5lb2YoKSkKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIGdldGxpbmUoY2luLCB0ZW1wKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IG51bVJhdGluZ3MgPSByYXRpbmdzLnNpemUoKTsKICAgICAgICB2ZWN0b3I8aW50PiBwb3NJblJhdGluZ3MobnVtUmF0aW5ncywgMCk7CiAgICAgICAgCiAgICAgICAgaW50IHdpbm5lciA9IC0xOwogICAgICAgIAogICAgICAgIHZlY3RvcjxpbnQ+IGNvdW50KG4sIDApOwogICAgICAgIAogICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUmF0aW5nczsgKytpKQogICAgICAgICAgICArK2NvdW50W3JhdGluZ3NbaV1bMF1dOwogICAgICAgIAogICAgICAgIAogICAgICAgIHdoaWxlICh3aW5uZXIgPT0gLTEpCiAgICAgICAgewogICAgICAgICAgCiAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtUmF0aW5nczsgKytpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBib29sIGNoYW5nZWQoZmFsc2UpOwogICAgICAgICAgICAgICAgd2hpbGUgKGVsaW1pbmF0ZWRbcmF0aW5nc1tpXVtwb3NJblJhdGluZ3NbaV1dXSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICArK3Bvc0luUmF0aW5nc1tpXTsKICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgICAgICAgICAgICAgKytjb3VudFtyYXRpbmdzW2ldW3Bvc0luUmF0aW5nc1tpXV1dOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpbnQgaGlnaGVzdCgwKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGludCBsb3dlc3QoMTAwMCk7CiAgICAgICAgICAgIAogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKGVsaW1pbmF0ZWRbaV0pCiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICBpZiAoY291bnRbaV0gPiBoaWdoZXN0KQogICAgICAgICAgICAgICAgICAgIGhpZ2hlc3QgPSBjb3VudFtpXTsKICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChjb3VudFtpXSA8IGxvd2VzdCkKICAgICAgICAgICAgICAgICAgICBsb3dlc3QgPSBjb3VudFtpXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaWYgKGhpZ2hlc3QgPT0gbG93ZXN0IHx8IGhpZ2hlc3QgKiAyID4gbnVtUmF0aW5ncykKICAgICAgICAgICAgICAgIHdpbm5lciA9IGhpZ2hlc3Q7CiAgICAgICAgICAgIAogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKQogICAgICAgICAgICAgICAgICAgIGlmIChjb3VudFtpXSA9PSBsb3dlc3QpCiAgICAgICAgICAgICAgICAgICAgICAgIGVsaW1pbmF0ZWRbaV0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGNvdXQgPDwgZW5kaW5nU2VwZXJhdG9yOwogICAgICAgIGVuZGluZ1NlcGVyYXRvciA9ICJcbiI7CiAgICAgICAgCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpCiAgICAgICAgICAgIGlmIChjb3VudFtpXSA9PSB3aW5uZXIgJiYgIWVsaW1pbmF0ZWRbaV0pICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBjb3V0IDw8IG5hbWVzW2ldIDw8ICdcbic7CiAgICB9Cgp9