#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define loop(i,a,b) for(int i=a;i pii; typedef vector vi; typedef vector vvi; typedef vector vp; typedef vector vvp; typedef vector vs; typedef vector vd; typedef tuple tp; typedef vector vt; typedef vector vvd; typedef pair pip; typedef vectorvip; const double PI=acos(-1); const double EPS=1e-7; const int inf=1e9; const ll INF=1e16; int dx[]={0,1,0,-1,0,2,0,-2}; int dy[]={1,0,-1,0,2,0,-2,0}; int main(){ int n,m; cin>>n>>m; int a,b,c,d; cin>>a>>b>>c>>d; a--;b--;c--;d--; vs in(n); rep(i,n)cin>>in[i]; queueque; vvi dp(n,vi(m)); dp[a][b]=1; que.push(pii(a,b)); while(!que.empty()){ pii now=que.front(); que.pop(); rep(i,8){ int nx=now.first+dx[i]; int ny=now.second+dy[i]; if(nx<0||ny<0||nx>=n||ny>=m||dp[nx][ny])continue; bool h=true; if(i<4&&abs(in[now.first][now.second]-in[nx][ny])>1)h=false; if(i>=4&&(abs(in[now.first][now.second]-in[nx][ny])>0||in[nx][ny]