#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long res = 0, f = 1;
  char ch = getchar();
  while (!isdigit(ch)) {
    if (ch == '-') f = -f;
    ch = getchar();
  }
  while (isdigit(ch)) {
    res = (res << 3) + (res << 1) + ch - '0';
    ch = getchar();
  }
  return res * f;
}
namespace qiqi {
const int N = 2e5 + 5;
const long long INF = 0x3f3f3f3f3f3f3f3f;
int n, m;
long long lx = -INF, rx = INF, ly = -INF, ry = INF;
struct Point {
  long long x, y, k, r;
  inline bool friend operator<(Point a, Point b) { return a.r < b.r; }
} p[N];
void main() {
  n = read();
  m = read();
  for (int i = (1); i <= (n); ++i) {
    long long t = read(), x = read(), y = read();
    if ((x ^ y ^ t) & 1) {
      puts("NO");
      return;
    }
    p[i] = (Point){(x + y + t) >> 1, (y - x + t) >> 1, t / m, t % m};
  }
  sort(p + 1, p + n + 1);
  p[++n] = (Point){0, 0, -1, m};
  for (int i = (1); i <= (n); ++i) {
    long long x = p[i].x - p[i - 1].x, y = p[i].y - p[i - 1].y,
              k = p[i].k - p[i - 1].k, r = p[i].r - p[i - 1].r;
    if (!k) {
      if (x - r > 0 || x + r < 0 || y - r > 0 || y + r < 0) {
        puts("NO");
        return;
      }
    } else if (k > 0) {
      lx = max(lx, (long long)ceil(1.0L * (x - r) / k));
      rx = min(rx, (long long)floor(1.0L * x / k));
      ly = max(ly, (long long)ceil(1.0L * (y - r) / k));
      ry = min(ry, (long long)floor(1.0L * y / k));
    } else {
      lx = max(lx, (long long)ceil(1.0L * x / k));
      rx = min(rx, (long long)floor(1.0L * (x - r) / k));
      ly = max(ly, (long long)ceil(1.0L * y / k));
      ry = min(ry, (long long)floor(1.0L * (y - r) / k));
    }
  }
  if (lx > rx || ly > ry) {
    puts("NO");
    return;
  }
  for (int i = (1); i <= (n); ++i) {
    int k = p[i].k - p[i - 1].k, x = p[i].x - p[i - 1].x - k * lx,
        y = p[i].y - p[i - 1].y - k * ly;
    for (int j = (p[i - 1].r + 1); j <= (p[i].r); ++j) {
      if (x > 0) {
        --x;
        if (y > 0) {
          --y;
          putchar('U');
        } else
          putchar('R');
      } else {
        if (y > 0) {
          --y;
          putchar('L');
        } else
          putchar('D');
      }
    }
  }
}
}  // namespace qiqi
int main() {
  qiqi::main();
  return 0;
}
