#pragma GCC target("avx")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>

int N,M;
char s[7];
bool vis[500][500];
inline bool q(int i,int j) noexcept{
  vis[i][j]=true;
  printf("%d %d\n",i+1,j+1);
  scanf("%s",s);
  return s[0]=='B';
}
void dfs(int i,int j){
  if(i==N-1&&j==N-1){
    puts("Yes");
    exit(0);
  }
  if(i+1<N&&!vis[i+1][j]&&q(i+1,j))dfs(i+1,j);
  if(j+1<N&&!vis[i][j+1]&&q(i,j+1))dfs(i,j+1);
  if(i&&!vis[i-1][j]&&q(i-1,j))dfs(i-1,j);
  if(j&&!vis[i][j-1]&&q(i,j-1))dfs(i,j-1);
}
int main(){
  scanf("%d %d",&N,&M);
  vis[0][0]=true;
  dfs(0,0);
  puts("No");
}