#include <bits/stdc++.h>
constexpr auto MAXN = 1001;
using namespace std;
int T;
int n;
struct POINT {
  int x, y;
} p[MAXN];
inline bool cmpx(POINT a, POINT b) {
  if (a.x < b.x)
    return true;
  else
    return false;
}
inline bool cmpy(POINT a, POINT b) {
  if (a.y < b.y)
    return true;
  else
    return false;
}
inline void hout(int x, int y) {
  for (register int i = 1; i <= x; i++) cout << "R";
  for (register int i = 1; i <= y; i++) cout << "U";
  return;
}
inline void init() { memset(p, NULL, sizeof p); }
int main() {
  cin >> T;
  while (T--) {
    init();
    cin >> n;
    for (int i = 1; i <= n; i++) {
      int x, y;
      cin >> x >> y;
      p[i].x = x;
      p[i].y = y;
    }
    sort(p + 1, p + 1 + n, cmpx);
    int now = NULL;
    int lsz = NULL;
    for (int i = 1; i <= n; i++) {
      if (now != p[i].x) {
        sort(p + lsz, p + i, cmpy);
        lsz = i;
        now = p[i].x;
        continue;
      }
    }
    sort(p + lsz, p + 1 + n, cmpy);
    int kpx = NULL;
    int kpy = NULL;
    bool label = true;
    for (int i = 1; i <= n; i++) {
      if (kpy > p[i].y) {
        cout << "NO" << endl;
        label = false;
        break;
      }
      kpy = p[i].y;
    }
    if (label == false) continue;
    cout << "YES" << endl;
    int nx = NULL, ny = NULL;
    for (int i = 1; i <= n; i++) {
      hout(p[i].x - nx, p[i].y - ny);
      nx = p[i].x;
      ny = p[i].y;
    }
    cout << endl;
  }
  return 0;
}
