#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
#include <complex>
#include <stack>
#define LL long long int
#define dob double
#define FILE "10755"
using namespace std;
const int N = 21;
const LL Inf = 1ll<<60;
LL A,B,C,Y[N][N][N],Ans;
inline LL gi(){
LL x=0,res=1;char ch=getchar();
while(ch>'9'||ch<'0'){if(ch=='-')res*=-1;ch=getchar();}
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return x*res;
}
inline LL MAX(LL a,LL b){
return a>b?a:b;
}
inline LL MIN(LL a,LL b){
return a<b?a:b;
}
inline void solve(){
LL A=gi(),B=gi(),C=gi();Ans=-Inf;
memset(Y,0,sizeof(Y));
for(int i=1;i<=A;++i)
for(int j=1;j<=B;++j)
for(int k=1;k<=C;++k)
Y[i][j][k]=gi()+Y[i-1][j][k]+Y[i][j-1][k]-Y[i-1][j-1][k];
for(int lef=1;lef<=A;++lef)
for(int rig=lef;rig<=A;++rig)
for(int dow=1;dow<=B;++dow)
for(int up=dow;up<=B;++up){
LL Sum=0,Min=0;
for(int fro=1;fro<=C;++fro){
Sum=Sum+Y[rig][up][fro]-Y[rig][dow-1][fro]-Y[lef-1][up][fro]+Y[lef-1][dow-1][fro];
Ans=MAX(Ans,Sum-Min);
Min=MIN(Min,Sum);
}
}
printf("%lld\n",Ans);
}
int main()
{
freopen(FILE".in","r",stdin);
freopen(FILE".out","w",stdout);
int Case=gi();
for(int t=1;t<=Case;++t){
solve();
if(t^Case)printf("\n");
}
return 0;
}