#include<bits/stdc++.h>
#define xu1(i,a,b) for(i=(a);i<=(b);i++)
#define xu2(i,a,b) for(i=(a);i<(b);i++)
#define mes(a,b) memset(a,b,sizeof(a))
#define mec(a,b) memcpy(a,b,sizeof(a))
#define frr(s) freopen(s,"r",stdin)
#define frw(s) freopen(s,"w",stdout)
#define ret(x) return(x);
#define AZ(a) (a)>='A'&&(a)<='Z'
#define az(a) (a)>='a'&&(a)<='z'
#define SZ(a) (a)>='0'&&(a)<='9'
#define anh(a,x,y) (a)>=(x)&&(a)<=(y)
#define orh(a,x,y) (a)>=(x)||(a)<=(y)
#define tisu ios::sync_with_stdio(false)
#define ll long long
#define ull unsigned long long
using namespace std;
const int N=110;
int n,m,sx,sy,ex,ey,v[N][N][4];
int fx[4]={1,-1,0,0};
int fy[4]={0,0,1,-1};
bool p[N][N];
struct asdf{
int x,y,t,lt,f;
}e,w;
queue<asdf>q;
int main()
{
cin>>n>>m;
cin>>sx>>sy>>ex>>ey;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>p[i][j];
for(int k=1;k<=10;k++)
{
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int o=0;o<4;o++)
v[i][j][o]=0;
while(q.size())
q.pop();
e.x=sx;e.y=sy;
e.t=0;e.lt=0;e.f=0;
int tt=1;
q.push(e);
e.f++;q.push(e);
e.f++;q.push(e);
e.f++;q.push(e);
v[e.x][e.y][0]=tt;
v[e.x][e.y][1]=tt;
v[e.x][e.y][2]=tt;
v[e.x][e.y][3]=tt;
while(!q.empty())
{
e=q.front();
q.pop();
if(e.x==ex&&e.y==ey)
{
cout<<k<<" "<<e.t<<endl;
break;
}
for(int i=0;i<4;i++)
{
w=e;
if(e.x+fx[i]>0&&e.x+fx[i]<=n&&e.y+fy[i]>0&&e.y+fy[i]<=m&&p[e.x+fx[i]][e.y+fy[i]])
if(e.f==i)
{
w.lt++;
w.t++;
w.x+=fx[i];
w.y+=fy[i];
if(!v[w.x][w.y][i])
{
v[w.x][w.y][i]=1;
q.push(w);
}
}
else if(w.lt>=k)
{
w.lt=1;
w.t++;
w.x+=fx[i];
w.y+=fy[i];
w.f=i;
if(!v[w.x][w.y][i])
{
v[w.x][w.y][i]=1;
q.push(w);
}
}
}
}
}
return 0;
}
RT
#3,4,5,6,8,9,WA