from collections import deque H, W = map(int, input().split()) sy, sx, gy, gx = map(lambda x: int(x) - 1, input().split()) S = [list(map(int, input())) for _ in range(H)] visited = [[False] * W for _ in range(H)] visited[sy][sx] = True direction = [(-1, 0), (0, 1), (1, 0), (0, -1)] que = deque([(sy, sx)]) while que: y, x = que.popleft() for dy, dx in direction: ny, nx = y + dy, x + dx nny, nnx = ny + dy, nx + dx if not (0 <= ny < H and 0 <= nx < W): continue if visited[ny][nx]: continue if abs(S[ny][nx] - S[y][x]) <= 1: visited[ny][nx] = True que.append((ny, nx)) if not (0 <= nny < H and 0 <= nnx < W): continue if visited[nny][nnx]: continue if S[nny][nnx] == S[y][x] and S[nny][nnx] > S[ny][nx]: visited[nny][nnx] = True que.append((nny, nnx)) print("YES" if visited[gy][gx] else "NO")