#include <bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn = 1010;
int n;
LL x[maxn],y[maxn],u[maxn],v[maxn],bs[35];

LL power_int(int a, int b) {
  LL x = 1;
  while (b > 0) {x *= a;b--;}
  return x;
}

void work() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> x[i] >> y[i];

  LL parity = (x[0] + y[0]) % 2;

  for (int i = 0; i < n; i++) if ((x[i] + y[i] - parity) % 2 != 0) {cout<<"-1"<<endl;return;}

    if (parity == 0) {
      cout << 32 << endl;
      for (int i = 30; i > -1; i--) {
        cout << power_int(2, i) << " ";
      }
      cout << 1 << endl;
      for (int i = 0; i < n; i++) {
        x[i]++;
      }
    }
    else {
      cout << 31 << endl;
      for (int i = 30; i > -1; i--) {
        cout << power_int(2, i) << " ";
      }
      cout << endl;
    }

    for (int i = 0; i < n; i++) u[i] = x[i] + y[i], v[i] = x[i] - y[i];

    for (int i = 0; i < n; i++) {
        for (int j = 30; j > -1; j--) {
            if (u[i] > 0 && v[i] > 0) {cout << 'R'; u[i] -= power_int(2, j); v[i] -= power_int(2, j); }
            else if (u[i] > 0 && v[i] < 0) { cout << 'U'; u[i] -= power_int(2, j); v[i] += power_int(2, j); }
            else if (u[i] < 0 && v[i] > 0) { cout << 'D'; u[i] += power_int(2, j); v[i] -= power_int(2, j); }
            else { cout << 'L'; u[i] += power_int(2, j); v[i] += power_int(2, j);}
        }
        if (parity == 0) cout << 'L';
        cout << endl;
    }
}
int main(){
    work();
    return 0;
}
