#include<iostream>
using namespace std;
int N = 8;
int X[101], cot[101], d1[101], d2[101];
int arr[65][65];
int Max = 0;
int Sum = 0;
void inkq(){
for (int i = 1; i <= N; i++)
{
for (int u = 1; u <= N; u++)
{
Sum += arr[u][X[u]];
}
if(Max < Sum)Max = Sum;
Sum = 0;
}
}
//cot, d1, d2 danh dau cot, cheo xuoi, cheo nguoc
void Try(int i){
for (int j = 1; j <= N; j++)
{
if(cot[j] == 1 && d1[i - j + N] == 1 && d2[i+j-1] == 1){
X[i] = j;
cot[j] = d1[i-j+N] = d2[i+j-1] = 0;
if(i == N) inkq();
else Try(i+1);
//backtrack
cot[j] = d1[i-j + N] = d2[i+j-1] = 1;
}
}
}
int main(){
int T;
//freopen("queen.txt", "r", stdin);
cin>>T;
int k;
for (int test = 1; test <= T; test++)
{
cin>>k;
cout<<"Case #"<<test<<endl;
for (int sobang = 0; sobang < k; sobang++)
{
for (int i = 1; i <= 8; i++)
{
for (int j = 1; j <= 8; j++)
{
cin>>arr[i][j];
}
}
Max = 0;
for (int i = 0; i <= 100; i++)
{
cot[i] = d1[i] = d2[i] = 1;
}
Try(1);
cout<<Max<<endl;
//Max = Sum = 0;
}
}
return 0;
}