#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
#define FOR(i, n) for(int i=1; i<=n; i++)
#define FOR0(i, n) for(int i=0; i<n; i++)
const int MAXN = 21;
const long long MAX = 1000000000000ll;
long long sum3[MAXN][MAXN][MAXN];
long long sum2[MAXN][MAXN];
long long sum1[MAXN];
int A, B, C;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&A,&B,&C);
memset(sum3,0,sizeof sum3);
FOR(i,A) FOR(j,B) FOR(k,C) scanf("%lld",&sum3[i][j][k]);
long long ans = -MAX;
FOR(sm, A) //枚举上面
{
//计算面的和,为三维压缩为二维做准备
FOR(j, B) FOR(k, C) sum3[sm][j][k] += sum3[sm-1][j][k];
FOR0(xm, sm) //枚举底面
{
//压缩进入二维
memset(sum2,0,sizeof sum2);
FOR(j, B) FOR(k, C) sum2[j][k] = sum3[sm][j][k] - sum3[xm][j][k];
/* cout << sm << " *** " << xm <<endl;
FOR(j, B){
FOR(k, C)
{
cout<<sum2[j][k]<<" ";
}
cout<<endl;
}*/
//二维转一维
FOR(sb, B) // 枚举上边
{
//计算线的和,为二维压缩为一维做准备
FOR(k, C) sum2[sb][k] += sum2[sb-1][k];
FOR0(xb, sb) //枚举下边
{
//压缩进入一维
memset(sum1,0,sizeof sum1);
FOR(k, C) sum1[k] = sum2[sb][k] - sum2[xb][k];
/*cout<<"---一维start---"<<endl;
cout<<sb<<"---"<<xb<<endl;
FOR(k, C) cout << sum1[k]<<" ";
cout<<endl;
cout<<"---一维end----"<<endl;*/
//处理一维
//计算一维点的和,为计算结果做准备
FOR(k, C) sum1[k] += sum1[k-1];
long long min1 = 0;
FOR(k, C)
{
ans = max(ans, sum1[k]-min1);
min1 = min(min1, sum1[k]);
}
//处理一维end
}
}
//二维转一维end
}
}
printf("%lld\n", ans);
if(t)printf("\n");
}
return 0;
}