#include <bits/stdc++.h>
using namespace std;
const double ME = 2.71828;
const int N = 3e5 + 20;
const int inf = 0x3f3f3f3f;
const double pi = 3.141592653;
void LOSER() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
void file() { freopen("records.in", "r", stdin); }
long long gcd(long long a, long long b) { return (!b) ? a : gcd(b, a % b); }
long long lcm(long long a, long long b) { return a / gcd(a, b) * b; }
long long Fib_recur(long long n) {
  vector<long long> v(n + 5, 0);
  v[1] = 0;
  v[2] = 1;
  for (int i = int(3); i <= int(n); i++) v[i] = v[i - 1] + v[i - 2];
  return v[n];
}
bool isprime(long long n) {
  if (n == 1) return 0;
  for (long long i = 2; i <= sqrt(n); i++) {
    if (n % i == 0) return false;
  }
  return true;
}
void Solve() {
  int n, i;
  string ans = "";
  cin >> n;
  vector<pair<int, int>> a(n + 1);
  a[n].first = a[n].second = 0;
  for (int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
  sort(((a).begin()), ((a).end()));
  for (i = 1; i <= n; i++) {
    int r = (a[i].first - a[i - 1].first);
    int u = (a[i].second - a[i - 1].second);
    if (r < 0 || u < 0) break;
    while (r--) ans.push_back('R');
    while (u--) ans.push_back('U');
  }
  if (i != n + 1)
    cout << "NO"
         << "\n";
  else
    cout << "YES\n" << ans << "\n";
}
int main() {
  LOSER();
  long long t;
  cin >> t;
  while (t--) {
    Solve();
  }
}
