from collections import deque

H,W=map(int,input().split())
sx,sy,tx,ty=map(int,input().split())
sx-=1;sy-=1;tx-=1;ty-=1

S=[]
for _ in range(H):
    S.append(list(map(int,input())))

M=[(1,0),(-1,0),(0,1),(0,-1)]
T=[[0]*W for _ in range(H)]
T[sx][sy]=1
Q=deque([(sx,sy)])
while Q:
    x,y=Q.popleft()

    #隣のマスに移動
    for a,b in M:
        if not (0<=x+a<H and 0<=y+b<W):
            continue

        if abs(S[x][y]-S[x+a][y+b])>=2:
            continue

        if T[x+a][y+b]==0:
            T[x+a][y+b]=1
            Q.append((x+a,y+b))

    #2個隣のマスに移動
    for a,b in M:
        if not(0<=x+2*a<H and 0<=y+2*b<W):
            continue

        if S[x][y]==S[x+2*a][y+2*b] and S[x][y]>S[x+a][y+b]:
            if T[x+2*a][y+2*b]==0:
                T[x+2*a][y+2*b]=1
                Q.append((x+2*a,y+2*b))

print("YES" if T[tx][ty] else "NO")