from collections import deque import sys n, m = map(int, input().split()) dist = [[None for _ in range(n)] for _ in range(n)] dist[0][0] = 0 used = [[None for _ in range(n)] for _ in range(n)] used[0][0] = False used[-1][-1] = False dx = [1, 0, -1, 0] dy = [0, 1, 0, -1] gx, gy = n - 1, n - 1 dq = deque() dq.append((0, 0)) rest = 3000 while len(dq) > 0: cx, cy = dq.popleft() for i in range(4): nx = cx + dx[i] if nx < 0 or nx >= n: continue ny = cy + dy[i] if ny < 0 or ny >= n: continue if not dist[nx][ny] is None: continue if used[nx][ny] is None: if rest <= 0: break rest -= 1 print(*[nx + 1, ny + 1], sep=" ") sys.stdout.flush() t = input() if t == "Black": used[nx][ny] = False elif t == "White": used[nx][ny] = True if not used[nx][ny]: dist[nx][ny] = dist[cx][cy] + 1 dq.append((nx, ny)) if not dist[gx][gy] is None: print("Yes") sys.stdout.flush() exit() elif rest <= 0: break print("No") sys.stdout.flush()