#include <iostream> using namespace std; int height[50][50]; int sx,sy,gx,gy,H,W; bool visited[50][50]; bool valid(int x, int y){ return x>=0&&x<H&&y>=0&&y<W&&!visited[y][x]; } bool rec(int x, int y){ visited[y][x]=true; if(x==gx&&y==gy){ return true; } int h=height[y][x]; // cout<<x<<' '<<y<<' '<<h<<endl; int d[5]={0,1,0,-1,0}; for(int i=0;i<4;i++){ if(valid(x+d[i],y+d[i+1])&&abs(height[y+d[i+1]][x+d[i]]-h)<=1){ if(rec(x+d[i],y+d[i+1])) return true; } if(valid(x+2*d[i],y+2*d[i+1])&&height[y+2*d[i+1]][x+2*d[i]]==h&&height[y+d[i+1]][x+d[i]]<h){ if(rec(x+2*d[i],y+2*d[i+1])) return true; } } return false; } int main(){ cin>>H>>W; cin>>sx>>sy>>gx>>gy; sx--;sy--;gx--;gy--; for(int i=0;i<H;i++){ string s; cin>>s; for(int j=0;j<W;j++){ height[j][i]=s[j]-'0'; } } if(rec(sx,sy)){ cout<<"YES"<<endl; }else{ cout<<"NO"<<endl; } return 0; }