#include<iostream>
#include<cstring>
using namespace std;
int a[10][10] = {};
int n,m;
int ans;
int vis[10][10];
void dfs(int x,int y,int num)
{
if(x == n && y == m+1)
{
ans = max(ans,num);
return ;
}
int nx = x,ny = y;
if(y == m+1)
{
ny = 1;
nx ++;
}
else ny++;
if(!vis[nx][ny])
{
for(int i = nx-1;i<=nx+1;i++)
for(int j = ny-1;j<=ny+1;j++)
vis[i][j] = 1;
dfs(nx,ny,num+a[nx][ny]);
for(int i = nx-1;i<=nx+1;i++)
for(int j = ny-1;j<=ny+1;j++)
vis[i][j] = 0;
}
dfs(nx,ny,num);
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i = 1;i<=n;i++)
for(int j = 1;j<=m;j++)
cin>>a[i][j];
dfs(1,1,0);
cout<<ans;
ans = 0;
memset(vis,0,sizeof(vis));
}
}