#include<bits/stdc++.h> #define rep(i,n)for(int i=0;i<n;i++) using namespace std; int h, w, sx, sy, gx, gy; int mp[50][50]; bool flag[50][50]; int dx[]{ 1,-1,0,0 }, dy[]{ 0,0,1,-1 }; int dx2[]{ 2,-2,0,0 }, dy2[]{ 0,0,2,-2 }; void dfs(int x, int y) { flag[x][y] = true; rep(i, 4) { int nx = x + dy[i], ny = y + dx[i]; if (0 <= nx&&nx < h && 0 <= ny&&ny < w && !flag[nx][ny] && abs(mp[x][y] - mp[nx][ny]) <= 1) dfs(nx, ny); } rep(i, 4) { int nx = x + dx2[i], ny = y + dy2[i]; if (0 <= nx&&nx < h && 0 <= ny&&ny < w && !flag[nx][ny] && mp[x][y] == mp[nx][ny] && mp[x + dx2[i] / 2][y + dy2[i] / 2] < mp[x][y]) dfs(nx, ny); } } int main() { scanf("%d%d%d%d%d%d", &h, &w, &sx, &sy, &gx, &gy); sx--; sy--; gx--; gy--; rep(i, h)rep(j, w)scanf("%1d", &mp[i][j]); dfs(sx, sy); puts(flag[gx][gy] ? "YES" : "NO"); }