#include <iostream>
#include <vector>
#include <algorithm>
#include <random>
using namespace std;
int a[60][60];
int main() {
int T;
cin >> T;
mt19937 mt(123);
while (T--) {
int n;
cin >> n;
vector<int> can(1024);
vector<int> p(n);
int curr = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cin >> a[i][j];
}
p[i] = i;
curr ^= a[i][i];
}
for (int ii = 0; ii < 6000000; ii++) {
can[curr]++;
int i = uniform_int_distribution<int>(0, n - 1)(mt);
int j = uniform_int_distribution<int>(0, n - 1)(mt);
curr ^= a[i][p[i]];
curr ^= a[j][p[j]];
swap(p[i], p[j]);
curr ^= a[i][p[i]];
curr ^= a[j][p[j]];
if (can[curr] >= 100) {
curr ^= a[i][p[i]];
curr ^= a[j][p[j]];
swap(p[i], p[j]);
curr ^= a[i][p[i]];
curr ^= a[j][p[j]];
}
}
for (int i = 0; i < 1024; i++) {
if (can[i]) cout << i << ' ';
}
cout << endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8cmFuZG9tPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBhWzYwXVs2MF07CgppbnQgbWFpbigpIHsKICBpbnQgVDsKICBjaW4gPj4gVDsKICBtdDE5OTM3IG10KDEyMyk7CiAgd2hpbGUgKFQtLSkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIHZlY3RvcjxpbnQ+IGNhbigxMDI0KTsKICAgIHZlY3RvcjxpbnQ+IHAobik7CiAgICBpbnQgY3VyciA9IDA7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICBmb3IgKGludCBqID0gMDsgaiA8IG47IGorKykgewoJY2luID4+IGFbaV1bal07CiAgICAgIH0KICAgICAgcFtpXSA9IGk7CiAgICAgIGN1cnIgXj0gYVtpXVtpXTsKICAgIH0KICAgIGZvciAoaW50IGlpID0gMDsgaWkgPCA2MDAwMDAwOyBpaSsrKSB7CiAgICAgIGNhbltjdXJyXSsrOwogICAgICBpbnQgaSA9IHVuaWZvcm1faW50X2Rpc3RyaWJ1dGlvbjxpbnQ+KDAsIG4gLSAxKShtdCk7CiAgICAgIGludCBqID0gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGludD4oMCwgbiAtIDEpKG10KTsKICAgICAgY3VyciBePSBhW2ldW3BbaV1dOwogICAgICBjdXJyIF49IGFbal1bcFtqXV07CiAgICAgIHN3YXAocFtpXSwgcFtqXSk7CiAgICAgIGN1cnIgXj0gYVtpXVtwW2ldXTsKICAgICAgY3VyciBePSBhW2pdW3Bbal1dOwogICAgICBpZiAoY2FuW2N1cnJdID49IDEwMCkgewoJY3VyciBePSBhW2ldW3BbaV1dOwoJY3VyciBePSBhW2pdW3Bbal1dOwoJc3dhcChwW2ldLCBwW2pdKTsKCWN1cnIgXj0gYVtpXVtwW2ldXTsKCWN1cnIgXj0gYVtqXVtwW2pdXTsKICAgICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDI0OyBpKyspIHsKICAgICAgaWYgKGNhbltpXSkgY291dCA8PCBpIDw8ICcgJzsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKICB9Cn0K