#include<bits/stdc++.h>
using namespace std;
int n;
int x[500005],y[500005];
char xch[500005];
inline int rd()
{
int x=0,sig=1;
char c;
for(c=getchar();c<'0'||c>'9';c=getchar())
if (c=='-') sig=-1;
for(;c>='0'&&c<='9';c=getchar())
x=x*10+c-48;
return x*sig;
}
inline void wt(int x)
{
if(!x) putchar('0');
else
{
char s[10];
int i,j=0;
for(;x>0;x/=10)
s[j++]=x%10;
for(i=j-1;i>=0;i--)
putchar(s[i]+48);
}
putchar('\n');
}
inline bool xx(int i,int aa)
{
if(x[0]<x[aa])
{
if(y[0]<y[aa]) return ((x[0]<x[i])&&(y[0]<y[i])&&(x[i]<x[aa])&&(y[i]<y[aa]));
return ((x[0]<x[i])&&(y[0]>y[i])&&(x[i]<x[aa])&&(y[i]>y[aa]));
}
if(y[0]<y[aa]) return ((x[0]>x[i])&&(y[0]<y[i])&&(x[i]>x[aa])&&(y[i]<y[aa]));
return ((x[0]>x[i])&&(y[0]>y[i])&&(x[i]>x[aa])&&(y[i]>y[aa]));
}
inline bool dang(int aa,int op)
{
if(op==1)
{
for(int i=1;i<=n;i++)
if((abs(x[0]-x[i])==abs(y[0]-y[i]))&&xx(i,aa)) return true;
return false;
}
if(op==2)
{
if(x[0]==x[aa])
{
for(int i=1;i<=n;i++)
if(x[i]>min(x[0],x[aa])&&x[i]<max(x[0],x[aa])) return true;
return false;
}
for(int i=1;i<=n;i++)
if(y[i]>min(y[0],y[aa])&&y[i]<max(y[0],y[aa])) return true;
return false;
}
if(abs(x[0]-x[aa])==abs(y[0]-y[aa]))
{
for(int i=1;i<=n;i++)
if((abs(x[0]-x[i])==abs(y[0]-y[i]))&&xx(i,aa)) return true;
}
if(x[0]==x[aa])
{
for(int i=1;i<=n;i++)
if(x[i]>min(x[0],x[aa])&&x[i]<max(x[0],x[aa])) return true;
return false;
}
if(y[0]==y[aa])
{
for(int i=1;i<=n;i++)
if(y[i]>min(y[0],y[aa])&&y[i]<max(y[0],y[aa])) return true;
return false;
}
return false;
}
inline bool check(int aa)
{
if(xch[aa]=='B') return ((abs(x[0]-x[aa])==abs(y[0]-y[aa]))&&(!dang(aa,1)));
if(xch[aa]=='R') return ((x[0]==x[aa]||y[0]==y[aa])&&!dang(aa,2));
return (((abs(x[0]-x[aa])==abs(y[0]-y[aa]))&&(!dang(aa,1)))||((x[0]==x[aa]||y[0]==y[aa])&&!dang(aa,2)));
}
signed main()
{
std::ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
n=rd();
x[0]=rd();
y[0]=rd();
for(int i=1;i<=n;i++)
{
xch[i]=getchar();
x[i]=rd();
y[i]=rd();
}
for(int i=1;i<=n;i++)
if(check(i))
{
puts("YES");
return 0;
}
puts("NO");
return 0;
}