//ios::sync_with_stdio(false);
#include<bits/stdc++.h>
#define LL long long
#define F(x,y,z) for(int x=y;x<=z;++x)
#define D(x,y,z) for(int x=y;x>=z;--x)
#define ckmax(a,b) (a)=max(a,b)
#define ckmin(a,b) (a)=min(a,b)
using namespace std;
const int N=1010;
LL R(){
    LL ans=0,f=1;char c=getchar();
    for(;c<'0'||c>'9';c=getchar()) if (c=='-') f=-1;
    for(;c>='0'&&c<='9';c=getchar()) ans=ans*10+c-'0';
    return ans*f;
}
LL n,fg[2],tp;
LL a[N],b[N],p[N];
char an[N];
void Work(LL x,LL y){
	F(i,1,tp){
		if(abs(x)>abs(y)){
			if(x>0){
				an[i]='R';
				x-=p[i];
			}
			else{
				an[i]='L';
				x+=p[i];
			}
		}
		else{
			if(y>0){
				an[i]='U';
				y-=p[i];
			}
			else{
				an[i]='D';
				y+=p[i];
			}
		}
	}
	F(i,1,tp)cout<<an[i];
	cout<<'\n';
}
int main(){
	//freopen("1.in","r",stdin);freopen("1.out","w",stdout);
    n=R();
    F(i,1,n){
    	a[i]=R(),b[i]=R();
    	fg[(a[i]+b[i])&1]=1;
	}
	if(fg[0]&&fg[1]){cout<<-1;return 0;}
	F(i,0,30)p[31-i]=(1<<i);
	tp=31;
	if(fg[0])p[++tp]=1;
	cout<<tp<<'\n';
	F(i,1,tp)cout<<p[i]<<' ';
	cout<<'\n';
	F(i,1,n)Work(a[i],b[i]);
	return 0;
}