#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e3 + 5;
int n,m;
int a[N][N] , b[N][N] , d[N][N];
pair < int , int > s;
int dx[] = {0,1,0,-1},
dy[] = {1,0,-1,0};
bool BFS(int x){
memset(d,-1,sizeof(d));
queue<pair<int,int>> Q;
d[s.first][s.second] = 0;
Q.push(s);
while(!Q.empty()){
int i = Q.front().first,
j = Q.front().second;
Q.pop();
for(int k=0; k<=3 ; k++){
int u = i + dx[k],
v = j + dy[k];
if(d[u][v] != -1 || u<1 || v<1 || u>n || v>m ||
abs(a[i][j] - a[u][v]) > x) continue;
d[u][v] = d[i][j] + 1;
Q.push({u,v});
}
}
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= m ; j++)
if(b[i][j] == 1 && d[i][j] == -1)
return false;
return true;
}
main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n >> m;
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= m ; j++)
cin >> a[i][j];
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= m ; j++)
{
cin >> b[i][j];
if(b[i][j] == 1)
s = {i , j};
}
int l = 0 , r = 1e9 , ans = -1;
/// log2(1e9) * (n * m)
while(l <= r)
{
int mid = (l + r) / 2;
if(BFS(mid) == true)
{
r = mid - 1;
ans = mid;
}
else
l = mid + 1;
}
cout << ans;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgaW50IGxvbmcgbG9uZwoKY29uc3QgaW50IE4gPSAxZTMgKyA1OwppbnQgbixtOwppbnQgYVtOXVtOXSAsIGJbTl1bTl0gLCBkW05dW05dOwpwYWlyIDwgaW50ICwgaW50ID4gczsKCmludCBkeFtdID0gezAsMSwwLC0xfSwKICAgIGR5W10gPSB7MSwwLC0xLDB9OwoKYm9vbCBCRlMoaW50IHgpewogICAgbWVtc2V0KGQsLTEsc2l6ZW9mKGQpKTsKCiAgICBxdWV1ZTxwYWlyPGludCxpbnQ+PiBROwogICAgZFtzLmZpcnN0XVtzLnNlY29uZF0gPSAwOwogICAgUS5wdXNoKHMpOwogICAgd2hpbGUoIVEuZW1wdHkoKSl7CiAgICAgICAgaW50IGkgPSBRLmZyb250KCkuZmlyc3QsCiAgICAgICAgICAgIGogPSBRLmZyb250KCkuc2Vjb25kOwogICAgICAgIFEucG9wKCk7CiAgICAgICAgZm9yKGludCBrPTA7IGs8PTMgOyBrKyspewogICAgICAgICAgICBpbnQgdSA9IGkgKyBkeFtrXSwKICAgICAgICAgICAgICAgIHYgPSBqICsgZHlba107CiAgICAgICAgICAgIGlmKGRbdV1bdl0gIT0gLTEgfHwgdTwxIHx8IHY8MSB8fCB1Pm4gfHwgdj5tIHx8CiAgICAgICAgICAgIGFicyhhW2ldW2pdIC0gYVt1XVt2XSkgPiB4KSBjb250aW51ZTsKICAgICAgICAgICAgZFt1XVt2XSA9IGRbaV1bal0gKyAxOwogICAgICAgICAgICBRLnB1c2goe3Usdn0pOwogICAgICAgIH0KICAgIH0KICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspCiAgICAgICAgZm9yKGludCBqID0gMSA7IGogPD0gbSA7IGorKykKICAgICAgICAgICAgaWYoYltpXVtqXSA9PSAxICYmIGRbaV1bal0gPT0gLTEpCiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAKICAgIHJldHVybiB0cnVlOwp9CgoKCm1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwogICAgY291dC50aWUoMCk7CiAgICAKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IoaW50IGkgPSAxIDsgaSA8PSBuIDsgaSsrKQogICAgICAgIGZvcihpbnQgaiA9IDEgOyBqIDw9IG0gOyBqKyspCiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgICAgICAKICAgIGZvcihpbnQgaSA9IDEgOyBpIDw9IG4gOyBpKyspCiAgICAgICAgZm9yKGludCBqID0gMSA7IGogPD0gbSA7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiBiW2ldW2pdOwogICAgICAgICAgICBpZihiW2ldW2pdID09IDEpCiAgICAgICAgICAgICAgICBzID0ge2kgLCBqfTsKICAgICAgICB9CiAgICAgICAgCiAgICBpbnQgbCA9IDAgLCByID0gMWU5ICwgYW5zID0gLTE7CiAgICAvLy8gbG9nMigxZTkpICogKG4gKiBtKQogICAgd2hpbGUobCA8PSByKQogICAgewogICAgICAgIGludCBtaWQgPSAobCArIHIpIC8gMjsKICAgICAgICBpZihCRlMobWlkKSA9PSB0cnVlKQogICAgICAgIHsKICAgICAgICAgICAgciA9IG1pZCAtIDE7CiAgICAgICAgICAgIGFucyA9IG1pZDsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgICAgICBsID0gbWlkICsgMTsKICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9Cgo=