#include <bits/stdc++.h>
#define int long long
using namespace std;

const int MAXP = 35, MAXN = 1e5 + 10;
int n, sz;
int bin[2];
int step[MAXP + 10];
int x[MAXN], y[MAXN];

inline void print(int x, int y) {
	for (int i = 1; i <= sz; ++i) {
		if (abs(x) > abs(y)) {
			if (x > 0) putchar('R'), x -= step[i];
			else putchar('L'), x += step[i];
		} else {
			if (y > 0) putchar('U'), y -= step[i];
			else putchar('D'), y += step[i];
		}
	}
	puts("");
	return;
}

signed main() {
	scanf("%lld", &n);
	for (int i = 1; i <= n; ++i) {
		scanf("%lld%lld", &x[i], &y[i]);
		bin[x[i] + y[i] & 1] = 1;
	}
	if (bin[0] && bin[1]) return puts("-1"), 0;
	for (int i = MAXP; ~i; --i) step[++sz] = 1LL << i;
	if (bin[0]) step[++sz] = 1;
	printf("%lld\n", sz);
	for (int i = 1; i <= sz; ++i) printf("%lld%c", step[i], " \n"[i == sz]);
	for (int i = 1; i <= n; ++i) print(x[i], y[i]);
	return 0;
}