本地能过结果全re
#include<bits/stdc++.h>
using namespace std;
int maxn=0,dx[15]={0,-1,-1,0,1,1,1,0,-1,0},dy[15]={0,0,1,1,1,0,-1,-1,-1,0},n=0,a[10][10],m;
bool b[10][10]={};
void dfs(int now,int h,int x)
{
int i=0,j=0,k=0,l=0;
for(i=x;i<=n;i++)
for(j=1;j<=m;j++)
{
bool pd=0;
for(k=1;k<=9;k++)
if(b[i+dx[k]][j+dy[k]])
{
pd=1;
break;
}
if(pd)
continue;
b[i][j]=1;
h+=a[i][j];
maxn=max(maxn,h);
dfs(now+1,h,i);
h-=a[i][j];
b[i][j]=0;
}
}
int main2()
{
int i=0,j=0;
memset(a,0,sizeof(a));
cin>>n>>m;
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cin>>a[i][j];
}
memset(b,0,sizeof(b));
maxn=0;
dfs(1,0,1);
cout<<maxn<<'\n';
}
int main()
{
int t=0,i=0;
cin>>t;
for(i=1;i<=t;i++)
main2();
}