#include <bits/stdc++.h>
#define pii pair<int,int>
#define endl cout<<"\n";
#define fi first
#define int long long
#define se second
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define op freopen
#define TXT "test"
#define freo if(fopen(TXT".inp","r")){op(TXT".inp","r",stdin);op(TXT".out","w",stdout);}
using namespace std;
int n,m;
bool a[1005][1005];
bool vs[1005][1005];
int u1,v1,u2,v2,d[1005][1005];
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
void bfs(pii i1,pii i2)
{
queue<pii> q;
vs[i1.fi][i1.se]=1;
q.push(i1);
pii c;
int x,y,ox,oy;
while(!q.empty())
{
c=q.front();
q.pop();
x=c.fi;
y=c.se;
for(int i=0;i<4;i++)
{
ox=dx[i]+x;
oy=dy[i]+y;
if(!vs[ox][oy]&&ox>=1&&ox<=n&&oy>=1&&oy<=m&& a[ox][oy]==0 )
{
vs[ox][oy]=1;
q.push({ox,oy});
d[ox][oy]=d[x][y]+1;
}
}
}
}
main()
{
ios;
freo;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
cin>>u1>>v1>>u2>>v2;
for(int i=0;i<=n;i++)
vs[i][0]=1;
for(int i=0;i<=m;i++)
vs[0][i]=1;
d[u1][v1]=1;
bfs({u1,v1},{u2,v2});
if(!vs[u2][v2])
{
cout<<-1;
}
else
{
cout<<d[u2][v2];
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBlbmRsIGNvdXQ8PCJcbiI7CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgc2Ugc2Vjb25kCiNkZWZpbmUgaW9zIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKI2RlZmluZSBvcCBmcmVvcGVuCiNkZWZpbmUgVFhUICJ0ZXN0IgojZGVmaW5lIGZyZW8gaWYoZm9wZW4oVFhUIi5pbnAiLCJyIikpe29wKFRYVCIuaW5wIiwiciIsc3RkaW4pO29wKFRYVCIub3V0IiwidyIsc3Rkb3V0KTt9Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgbixtOwpib29sIGFbMTAwNV1bMTAwNV07CmJvb2wgdnNbMTAwNV1bMTAwNV07CmludCB1MSx2MSx1Mix2MixkWzEwMDVdWzEwMDVdOwppbnQgZHhbXT17MCwwLDEsLTF9OwppbnQgZHlbXT17MSwtMSwwLDB9Owp2b2lkIGJmcyhwaWkgaTEscGlpIGkyKQp7CiAgICBxdWV1ZTxwaWk+IHE7CiAgICB2c1tpMS5maV1baTEuc2VdPTE7CiAgICBxLnB1c2goaTEpOwogICAgcGlpIGM7CiAgICBpbnQgeCx5LG94LG95OwogICAgd2hpbGUoIXEuZW1wdHkoKSkKICAgIHsKICAgICAgICBjPXEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIHg9Yy5maTsKICAgICAgICB5PWMuc2U7CiAgICAgICAgZm9yKGludCBpPTA7aTw0O2krKykKICAgICAgICB7CiAgICAgICAgICAgIG94PWR4W2ldK3g7CiAgICAgICAgICAgIG95PWR5W2ldK3k7CiAgICAgICAgICAgIGlmKCF2c1tveF1bb3ldJiZveD49MSYmb3g8PW4mJm95Pj0xJiZveTw9bSYmIGFbb3hdW295XT09MCApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHZzW294XVtveV09MTsKICAgICAgICAgICAgICAgIHEucHVzaCh7b3gsb3l9KTsKICAgICAgICAgICAgICAgIGRbb3hdW295XT1kW3hdW3ldKzE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KbWFpbigpCnsKICAgIGlvczsKICAgIGZyZW87CiAgICBjaW4+Pm4+Pm07CiAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgIHsKICAgICAgICBmb3IoaW50IGo9MTtqPD1tO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+YVtpXVtqXTsKICAgICAgICB9CiAgICB9CiAgICBjaW4+PnUxPj52MT4+dTI+PnYyOwogICAgZm9yKGludCBpPTA7aTw9bjtpKyspCiAgICAgICAgdnNbaV1bMF09MTsKICAgIGZvcihpbnQgaT0wO2k8PW07aSsrKQogICAgICAgIHZzWzBdW2ldPTE7CiAgICBkW3UxXVt2MV09MTsKICAgIGJmcyh7dTEsdjF9LHt1Mix2Mn0pOwogICAgaWYoIXZzW3UyXVt2Ml0pCiAgICB7CiAgICAgICAgY291dDw8LTE7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAgICAgY291dDw8ZFt1Ml1bdjJdOwogICAgfQp9