from collections import deque H, W = map(int, input().split()) sy, sx, gy, gx = map(int, input().split()) inf = float("inf") b = [[inf]+list(map(int, input()))+[inf] for _ in [0]*H] b = [[inf]*(W+2)] + b + [[inf]*(W+2)] visited = [[0]*(W+2) for _ in [0]*(H+2)] visited[sy][sx] = 1 dq = deque([(sx, sy, b[sy][sx])]) popleft, append = dq.popleft, dq.append while dq: x, y, h = popleft() if x == gx and y == gy: print("YES") exit() for dx, dy in ((0, -1), (1, 0), (0, 1), (-1, 0)): nx, ny = x+dx, y+dy h2 = b[ny][nx] if abs(h-h2) <= 1 and visited[ny][nx] == 0: visited[ny][nx] = 1 append((nx, ny, h2)) if h > h2 and b[ny+dy][nx+dx] == h and visited[ny+dy][nx+dx] == 0: visited[ny+dy][nx+dx] = 1 append((nx+dx, ny+dy, b[ny+dy][nx+dx])) print("NO")