#include <bits/stdc++.h>
using namespace std;
bool myfunc(pair<int, int> a, pair<int, int> b) { return a.first < b.first; }
bool otherfunc(pair<int, int> a, pair<int, int> b) {
  return a.second < b.second && a.first <= b.first;
}
int main() {
  int cases;
  cin >> cases;
  for (int i = 0; i < cases; i++) {
    int numPacks;
    vector<pair<int, int>> packs;
    cin >> numPacks;
    for (int j = 0; j < numPacks; j++) {
      int x, y;
      cin >> x >> y;
      pair<int, int> coord = make_pair(x, y);
      packs.push_back(coord);
    }
    sort(packs.begin(), packs.end());
    list<char> path;
    pair<int, int> robot = make_pair(0, 0);
    bool possible = true;
    int j = 0;
    while (j < packs.size()) {
      if (packs[j].first == robot.first && packs[j].second > robot.second) {
        robot.second++;
        path.push_back('U');
      } else if (packs[j].first > robot.first &&
                 packs[j].second == robot.second) {
        robot.first++;
        path.push_back('R');
      } else if (packs[j].first > robot.first &&
                 packs[j].second > robot.second) {
        robot.first++;
        path.push_back('R');
      }
      if (packs[j].first == robot.first && packs[j].second == robot.second) {
        j++;
        if (j < packs.size()) {
          if (packs[j].first < robot.first || packs[j].second < robot.second) {
            possible = false;
            break;
          }
        }
      }
    }
    if (possible) {
      cout << "YES\n";
      int size = path.size();
      for (int j = 0; j < size; j++) {
        cout << path.front();
        path.pop_front();
      }
      cout << endl;
    } else
      cout << "NO\n";
  }
  return 0;
}
