#include <bits/stdc++.h>
using namespace std;
long long dp[100000 + 25];
struct node {
  int iz, der;
  long long tiempo;
  node() {}
  node(long long t, int i, int d) {
    tiempo = t;
    iz = i;
    der = d;
  }
};
struct otro {
  int proct, pos;
  long long tiemp;
  otro() {}
  otro(int ps, long long time, int timprt) {
    pos = ps;
    tiemp = time;
    proct = timprt;
  }
  bool operator<(const otro& algo) const { return algo.tiemp < tiemp; }
};
vector<node> v;
int n, m, ini, fin;
int valoreleg;
char eleg;
char ch[500000];
map<long long, int> mp;
void f() {
  long long tiemp = 1;
  int c = 0;
  int pos = ini;
  while (true) {
    if (v[mp[tiemp]].iz <= pos && v[mp[tiemp]].der >= pos) {
      ch[c++] = 'X';
      tiemp++;
      continue;
    }
    pos += valoreleg;
    ch[c] = eleg;
    if (v[mp[tiemp]].iz <= pos && v[mp[tiemp]].der >= pos) {
      pos -= valoreleg;
      ch[c] = 'X';
    }
    c++;
    tiemp++;
    if (pos == fin) {
      for (int a = 0; a < c; a++) cout << ch[a];
      cout << endl;
      return;
    }
  }
}
int main() {
  cin >> n >> m >> ini >> fin;
  int li, ri;
  long long tim;
  v.push_back(node(0, 0, 0));
  for (int a = 0; a < m; a++) {
    cin >> tim >> li >> ri;
    mp[tim] = a + 1;
    v.push_back(node(tim, li, ri));
  }
  if (ini < fin) {
    valoreleg = 1;
    eleg = 'R';
  } else {
    valoreleg = -1;
    eleg = 'L';
  }
  f();
}
