import sys input = sys.stdin.readline from collections import deque H,W,sx,sy=list(map(int,input().split())) S=[input().strip() for i in range(H)] DP0=[[[1<<60]*8 for j in range(W)] for i in range(H)] DP1=[[[1<<60]*8 for j in range(W)] for i in range(H)] sx-=1 sy-=1 Q=deque() for i in range(8): DP0[sx][sy][i]=0 Q.append((sx,sy,0,i)) while Q: #print(Q) x,y,kai,com=Q.popleft() if kai%2==0: for z,w,nc in [(x+1,y,0),(x-1,y,1),(x,y+1,2),(x,y-1,3),(x+1,y+1,4),(x+1,y-1,5),(x-1,y+1,6),(x-1,y-1,7)]: if 0<=zkai and kai>0: DP0[z][w][nc]=kai Q.appendleft((z,w,kai,nc)) else: if DP1[z][w][nc]>kai+1: DP1[z][w][nc]=kai+1 Q.append((z,w,kai+1,nc)) else: for z,w,nc in [(x+1,y,0),(x-1,y,1),(x,y+1,2),(x,y-1,3),(x+1,y+1,4),(x+1,y-1,5),(x-1,y+1,6),(x-1,y-1,7)]: if 0<=zkai and kai>0: DP1[z][w][nc]=kai Q.appendleft((z,w,kai,nc)) else: if DP0[z][w][nc]>kai+1: DP0[z][w][nc]=kai+1 Q.append((z,w,kai+1,nc)) c=0 for i in range(H): for j in range(W): for k in range(8): if DP0[i][j][k]!=1<<60: c=max(c,DP0[i][j][k]) if DP1[i][j][k]!=1<<60: c=max(c,DP1[i][j][k]) Q=int(input()) for tests in range(Q): gx,gy,T=list(map(int,input().split())) gx-=1 gy-=1 if c==0: print("No") continue if T%2==0: xx=min(DP0[gx][gy][k] for k in range(8)) if xx==1<<60: print("No") else: if xx<=T: print("Yes") else: print("No") else: xx=min(DP1[gx][gy][k] for k in range(8)) if xx==1<<60: print("No") else: if xx<=T: print("Yes") else: print("No")