#include <bits/stdc++.h>
#define MAXN 20
#define int long long
using namespace std;
const int dx[8]={-2,-2,-1,1,2,2,1,-1};
const int dy[8]={-1,1,2,2,1,-1,-2,-2};
const int dx2[8]={-1,-1,0,0,1,1,0,0};
const int dy2[8]={0,0,1,1,0,0,-1,-1};
int n,x,y;
struct node
{
char opt;
int x,y;
}a[MAXN];
int f[MAXN][MAXN],vis[MAXN][MAXN];
void solve()
{
memset(f,0,sizeof(f));
memset(vis,0,sizeof(vis));
f[1][3]=f[2][3]=f[3][3]=f[4][4]=f[4][5]=f[4][6]=f[3][7]=f[2][7]=f[1][7]=1;
f[0][5]=f[0][4]=f[0][6]=1;
for(int i=1;i<=n;i++) cin>>a[i].opt>>a[i].x>>a[i].y,vis[a[i].x][a[i].y]=1;
bool flag=0;
for(int i=1;i<=n&&!flag;i++)
{
int opt=a[i].opt;
if(opt=='R')
{
for(int j=a[i].y+1;j<=9;j++)
{
f[a[i].x][j]=1;
if(vis[a[i].x][j]&&(x!=a[i].x||y!=j))
break;
}
for(int j=a[i].y-1;j>=1;j--)
{
f[a[i].x][j]=1;
if(vis[a[i].x][j]&&(x!=a[i].x||y!=j))
break;
}
for(int k=a[i].x-1;k>=1;k--)
{
f[k][a[i].y]=1;
if(vis[k][a[i].y]&&(x!=k||y!=a[i].y)) break;
}
for(int k=a[i].x+1;k<=10;k++)
{
f[k][a[i].y]=1;
if(vis[k][a[i].y]&&(x!=k&&y!=a[i].y)) break;
}
}
else if(opt=='H')
{
for(int j=0;j<8;j++)
if(!vis[a[i].x+dx2[j]][a[i].y+dy2[j]]&&a[i].x+dx[j]>=1&&a[i].x+dx[j]<=10&&a[i].y+dy[j]>=1&&a[i].y+dy[j]<=9)
f[a[i].x+dx[j]][a[i].y+dy[j]]=1;
}
else if(opt=='C')
{
for(int j=a[i].y+1;j<=9;j++)
{
if(vis[a[i].x][j]&&(a[i].x!=x||j!=y))
{
for(int k=j+1;k<=9;k++)
{
f[a[i].x][k]=1;
if(vis[a[i].x][k]&&(x!=a[i].x||y!=k))
break;
}
break;
}
}
for(int j=a[i].y-1;j>=1;j--)
{
if(vis[a[i].x][j]&&(a[i].x!=x||j!=y))
{
for(int k=j-1;k>=1;k--)
{
f[a[i].x][k]=1;
if(vis[a[i].x][k]&&(x!=a[i].x||y!=k))
break;
}
break;
}
}
for(int k=a[i].x-1;k>=1;k--)
{
if(vis[k][a[i].y]&&(k!=x||a[i].y!=y))
{
for(int j=k-1;j>=1;j--)
{
f[j][a[i].y]=1;
if(vis[j][a[i].y]&&(x!=j||y!=a[i].y)) break;
}
break;
}
}
for(int k=a[i].x+1;k<=10;k++)
{
if(vis[k][a[i].y]&&(k!=x||a[i].y!=y))
{
for(int j=k+1;j<=9;j++)
{
f[j][a[i].y]=1;
if(vis[j][a[i].y]&&(x!=j||y!=a[i].y)) break;
}
break;
}
}
}
else
{
for(int j=a[i].x-1;j>=1;j--)
{
f[j][a[i].y]=1;
if(vis[j][a[i].y]&&(x!=j||y!=a[i].y))
break;
if(x==j&&y==a[i].y)
{
cout<<"NO"<<'\n';
flag=1;
break;
}
}
}
}
for(int i=1;i<=10;i++,cout<<endl)
for(int j=1;j<=9;j++)
cout<<f[i][j]<<" ";cout<<endl;cout<<endl;
if(!flag&&f[x+1][y]&&f[x-1][y]&&f[x][y-1]&&f[x][y+1]) cout<<"YES"<<'\n';
else if(!flag) cout<<"NO"<<'\n';
}
signed main()
{
ios::sync_with_stdio(0);
while(cin>>n>>x>>y)
{
if(!n&&!x&&!y) break;
solve();
}
return 0;
}