#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<stack>
#include<map>
#define lll long long
using namespace std;
int sum[500][500];
int t;
int n,m;
int ans[10001];
string s[10001];
int res;
int cal(int x,int y,int xx,int yy){
return sum[xx][yy]+sum[x-1][y-1]-sum[xx][y-1]-sum[x-1][yy];
}
int main(){
cin>>t;
while(t--){
res=9999999999;
cin>>n>>m;
for(int i=1;i<=n;++i){
cin>>s[i];
}
for(int i=1;i<=n;++i){
for(int j=1;j<=m;++j){
sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+(s[i][j-1]-'0');
}
}
for(int i=1;i+4<=n;++i){
for(int j=1;j+3<=m;++j){
int fff=9999999;
for(int z=i+4;z<=n;++z){
for(int k=j+3;k<=m&&k<=fff+2;++k){
int ans=cal(i,j,z,k);
int aa=cal(i+1,j+1,z-1,k-1);
if(aa>res){
fff=k;
break;
}
int aaa=(s[i][j-1]-'0')+s[i][k-1]-'0'+s[z][j-1]-'0'+s[z][k-1]-'0';
int tem=aa+(z-i-1)*2+(k-j-1)*2-(ans-aa-aaa);
if(tem-((k-j-1)-cal(i+1,k,z-1,k))>res){
break;
}
res=min(res,tem);
}
}
}
}
cout<<res<<endl;
}
return 0;
}