#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=55;
typedef pair<int,int> pii;
int n,m,sy,sx,gy,gx;
char g[N][N];
int d[N][N];
pii q[N*N];
int bfs()
{
int tt=0,hh=0;
q[0]={sy,sx};
memset(d,-1,sizeof d);
d[sy][sx]=0;
int dy[4]={-1,0,1,0},dx[4]={0,1,0,-1};
while(1)
{
auto test=q[tt];
if (test.first==gy&&test.second==gx)
break;
auto t=q[hh++];
for (int i=0;i<4;i++)
{
int y=t.first+dy[i],x=t.second+dx[i];
if (g[y][x]=='.'&&d[y][x]==-1)
{
d[y][x]=d[t.first][t.second]+1;
q[++tt]={y,x};
}
}
}
return d[gy][gx];
}
int main()
{
cin>>n>>m;
cin>>sy>>sx;
cin>>gy>>gx;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
cin>>g[i][j];
cout<<bfs()<<endl;
return 0;
}
请大佬救救蒟蒻