#include<bits/stdc++.h>
using namespace std;
const int N=505;
int mp[N][N],t,ans=-0x7f,x,m,n,a,b,c,d;
int main(){
ios::sync_with_stdio(false);
cin>>m>>n;
for(int i=0;i<m;i++)for(int j=0;j<n;j++)cin>>mp[i][j];
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
cin>>x;
if(x==1){
if(i==0)a=0x7f;
else a=abs(mp[i-1][j]-mp[i][j]);
if(j==0)b=0x7f;
else b=abs(mp[i][j-1]-mp[i][j]);
if(i==m-1)c=0x7f;
else c=abs(mp[i+1][j]-mp[i][j]);
if(j==n-1)d=0x7f;
else d=abs(mp[i][j+1]-mp[i][j]);
}
ans=max(ans,min(min(a,b),min(c,d)));
}
}
cout<<ans;
return 0;
}
rt
求调