#include #include using namespace std; typedef pair pii; int main(){ int h, w, sx, sy, gx ,gy; cin>> h>> w>> sx>> sy>> gx>> gy; sx--; sy--; gx--; gy--; string b[h]; for(int i=0; i> b[i]; } int fld[h][w]; for(int i=0; i Q; Q.push(pii(sx, sy)); dist[sx][sy]=0; while(!Q.empty()){ now=Q.front(); Q.pop(); if(now.first==gx&&now.second==gy){ cout<< "YES"<< endl; return 0; } for(pii d: dd){ ni=now.first+d.first; nj=now.second+d.second; if(!(0<=ni&&ni=dist[ni][nj]) continue; dist[ni][nj]=dist[now.first][now.second]+1; Q.push(pii(ni, nj)); } }else if(H==nh){ if(dist[now.first][now.second]+1>=dist[ni][nj]) continue; dist[ni][nj]=dist[now.first][now.second]+1; Q.push(pii(ni, nj)); }else{ if(H-1==nh){ if(dist[now.first][now.second]+1>=dist[ni][nj]) continue; dist[ni][nj]=dist[now.first][now.second]+1; Q.push(pii(ni, nj)); }else{ nni=ni+d.first; nnj=nj+d.second; if(!(0<=nni&&nni=dist[nni][nnj]) continue; dist[nni][nnj]=dist[now.first][now.second]+2; Q.push(pii(nni, nnj)); } } } } } cout<< "NO"<< endl; return 0; }