import java.util.Scanner;
public class Main {
static Scanner in
= new Scanner
(System.
in);
static int[][] a = new int[20][20];
static int[][] bit = new int[20][20];
static int[][] dp = new int[20][20];
static void solve() {
int n = in.nextInt();
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
a[i][j] = in.nextInt();
if (i == 0) {
dp[i][j] = a[i][j];
bit[i][j] = 1 << j;
}
}
}
int res = 0;
for (int i = 1; i < n; ++i) {
for (int j = 0; j < n; ++j) {
dp[i][j] = 0;
for (int k = 0; k < n; ++k) {
if (((1 << j) & bit[i - 1][k]) == 0) {
int cur = dp[i - 1][k] + a[i][j];
if (cur > dp[i][j]) {
dp[i][j] = cur;
bit[i][j] = bit[i - 1][k] + (1 << j);
}
}
}
}
}
}
public static void main
(String[] args
) { int t = 1;
t = in.nextInt();
while (t-- > 0) solve();
}
}
aW1wb3J0IGphdmEudXRpbC5TY2FubmVyOwoKcHVibGljIGNsYXNzIE1haW4gewoJc3RhdGljIFNjYW5uZXIgaW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCglzdGF0aWMgaW50W11bXSBhID0gbmV3IGludFsyMF1bMjBdOwoJc3RhdGljIGludFtdW10gYml0ID0gbmV3IGludFsyMF1bMjBdOwoJc3RhdGljIGludFtdW10gZHAgPSBuZXcgaW50WzIwXVsyMF07CgkKCXN0YXRpYyB2b2lkIHNvbHZlKCkgewoJCWludCBuID0gaW4ubmV4dEludCgpOwoJCWZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CgkJCWZvciAoaW50IGogPSAwOyBqIDwgbjsgKytqKSB7CgkJCQlhW2ldW2pdID0gaW4ubmV4dEludCgpOwoJCQkJaWYgKGkgPT0gMCkgewoJCQkJCWRwW2ldW2pdID0gYVtpXVtqXTsKCQkJCQliaXRbaV1bal0gPSAxIDw8IGo7CgkJCQl9CgkJCX0KCQl9CgkJCgkJaW50IHJlcyA9IDA7CgkJZm9yIChpbnQgaSA9IDE7IGkgPCBuOyArK2kpIHsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCBuOyArK2opIHsKCQkJCWRwW2ldW2pdID0gMDsKCQkJCWZvciAoaW50IGsgPSAwOyBrIDwgbjsgKytrKSB7CgkJCQkJaWYgKCgoMSA8PCBqKSAmIGJpdFtpIC0gMV1ba10pID09IDApIHsKCQkJCQkJaW50IGN1ciA9IGRwW2kgLSAxXVtrXSArIGFbaV1bal07CgkJCQkJCWlmIChjdXIgPiBkcFtpXVtqXSkgewoJCQkJCQkJZHBbaV1bal0gPSBjdXI7CgkJCQkJCQliaXRbaV1bal0gPSBiaXRbaSAtIDFdW2tdICsgKDEgPDwgaik7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlyZXMgPSBJbnRlZ2VyLm1heChyZXMsIGRwW2ldW2pdKTsKCQkJfQoJCX0KCgkJU3lzdGVtLm91dC5wcmludGxuKHJlcyk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlpbnQgdCA9IDE7CgkJdCA9IGluLm5leHRJbnQoKTsKCQl3aGlsZSAodC0tID4gMCkgc29sdmUoKTsKCX0KfQ==