from collections import deque

def bfs():
    q = deque([(Si, Sj, A)])
    visited = [[[False]*4000 for _ in range(W)] for _ in range(H)]
    visited[Si][Sj][A] = True
    
    while q:
        cx, cy, s = q.popleft()
        
        for nx, ny in [(cx-1, cy), (cx+1, cy), (cx, cy-1), (cx, cy+1)]:
            if not (0<=nx<H and 0<=ny<W):
                continue
            
            ns = s+(1 if M[nx][ny]=='*' else -1)
            
            if ns==0 or ns>=4000:
                continue
            
            if not visited[nx][ny][ns]:
                visited[nx][ny][ns] = True
                q.append((nx, ny, ns))

    return visited[Gi][Gj][B]

H, W = map(int, input().split())
A, Si, Sj = map(int, input().split())
B, Gi, Gj = map(int, input().split())
M = [input() for _ in range(H)]

if bfs():
    print('Yes')
else:
    print('No')