#include using namespace std; typedef long long ll; typedef vector vi; typedef vector vl; typedef pair pii; typedef pair pll; typedef int _loop_int; #define REP(i,n) for(_loop_int i=0;i<(_loop_int)(n);++i) #define FOR(i,a,b) for(_loop_int i=(_loop_int)(a);i<(_loop_int)(b);++i) #define FORR(i,a,b) for(_loop_int i=(_loop_int)(b)-1;i>=(_loop_int)(a);--i) #define DEBUG(x) cout<<#x<<": "< P; int h,w,si,sj,gi,gj; char height[52][52]; bool po[52][52]; int di[] = {1,0,-1,0}; int dj[] = {0,1,0,-1}; void dfs(int i,int j){ po[i][j] = true; REP(d,4){ int ni,nj; ni = i+di[d]; nj = j+dj[d]; if(ni<0||nj<0||ni>=h||nj>=w)continue; if(!po[ni][nj] && abs(height[i][j]-height[ni][nj])<=1)dfs(ni,nj); if(height[i][j]=h||nj>=w)continue; if(!po[ni][nj] && height[i][j]==height[ni][nj])dfs(ni,nj); } } int main(){ scanf("%d%d%d%d%d%d",&h,&w,&si,&sj,&gi,&gj); --si;--sj;--gi;--gj; REP(i,h)scanf("%s",height[i]); dfs(si,sj); puts(po[gi][gj]?"YES":"NO"); return 0; }