#include <bits/stdc++.h>
using namespace std;
vector<pair<int, bool>> ans(9, {2 * 1e9 + 7, 0});
int x;
int y;
void fill_B(int x, int i, char& fig) { ans[i] = {x, !(fig == 'R')}; }
void fill_R(int x, int i, char& fig) { ans[i + 4] = {x, !(fig == 'B')}; }
void check_B(char& fig, int _x, int _y) {
  int nx = _x - x;
  int ny = _y - y;
  if (abs(nx) == abs(ny)) {
    if (nx > 0 && ny > 0 && ans[1].first > nx) {
      fill_B(nx, 1, fig);
    } else if (nx < 0 && ny > 0 && ans[2].first > -nx) {
      fill_B(-nx, 2, fig);
    } else if (nx < 0 && ny < 0 && ans[3].first > -nx) {
      fill_B(-nx, 3, fig);
    } else if (nx > 0 && ny < 0 && ans[4].first > nx) {
      fill_B(nx, 4, fig);
    }
  }
}
void check_R(char& fig, int _x, int _y) {
  if (x == _x) {
    if (_y > y && ans[2 + 4].first > abs(y - _y)) {
      fill_R(abs(y - _y), 2, fig);
    } else if (ans[4 + 4].first > abs(y - _y)) {
      fill_R(abs(y - _y), 4, fig);
    }
  }
  if (y == _y) {
    if (_x > x && ans[1 + 4].first > abs(x - _x)) {
      fill_R(abs(x - _x), 1, fig);
    } else if (ans[3 + 4].first > abs(x - _x)) {
      fill_R(abs(x - _x), 3, fig);
    }
  }
}
int main() {
  int n;
  cin >> n >> x >> y;
  for (int i = 0; i < n; i++) {
    int _x, _y;
    char fig;
    cin >> fig >> _x >> _y;
    check_B(fig, _x, _y);
    check_R(fig, _x, _y);
  }
  bool f = 0;
  for (auto i : ans) {
    f |= i.second;
  }
  cout << (f ? "YES" : "NO") << endl;
}
