#include <bits/stdc++.h>
const int inf_max = 0x3f3f3f3f;
const long long Linf = 9e18;
const int maxn = 1e3 + 10;
const long double E = 2.7182818;
const double eps = 0.0001;
using namespace std;
inline int read() {
  int f = 1, res = 0;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    res = res * 10 + ch - '0';
    ch = getchar();
  }
  return f * res;
}
struct node {
  int x, y;
  bool operator<(const node &a) const { return (x == a.x ? y < a.y : x < a.x); }
} pac[maxn];
int n;
vector<char> ans;
int main() {
  int t;
  t = read();
  while (t--) {
    ans.clear();
    n = read();
    for (int i = 1; i <= n; ++i) {
      pac[i].x = read();
      pac[i].y = read();
    }
    sort(pac + 1, pac + n + 1);
    int sx = 0, sy = 0, ok = 1;
    for (int i = 1; i <= n; ++i) {
      if (pac[i].x < sx || pac[i].y < sy) {
        ok = 0;
        break;
      }
      while (sx < pac[i].x) ans.push_back('R'), sx++;
      while (sy < pac[i].y) ans.push_back('U'), sy++;
    }
    if (ok) {
      puts("YES");
      for (int i = 0; i < ans.size(); ++i) {
        printf("%c", ans[i]);
      }
      printf("\n");
    } else
      puts("NO");
  }
  return 0;
}
