#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;
}