#include <cstdio>
#include <cstring>
#include <cmath>
#include <bitset>
#include <algorithm>
#include <iostream>
typedef long long ll;
using namespace std;
const int maxn=1100;
int n,len=0;
int xi[maxn],yi[maxn];
int d[maxn];
int flag1=0,flag0=0;

void print(int x,int y){
    for(int i=1;i<=len;i++){
        if(abs(x)>abs(y)){
            if(x>0) putchar('R'),x-=d[i];
            else putchar('L'),x+d[i];
        }else{
            if(y>0) putchar('U'),y-=d[i];
            else putchar('D'),y+=d[i];
        }
    }
    printf("\n");
}

int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d%d",&xi[i],&yi[i]);
        if((xi[i]+yi[i])==0) flag0=1;
        else flag1=1;
    }
    for(int i=30;i>=0;i--) d[++len]=(1<<i);
    if(flag0==1&&flag1==1){
        printf("-1\n");
        return 0;
    }
    if(flag0) d[++len]=1;
    printf("%d\n",len);
    for(int i=1;i<len;i++) printf("%d ",d[i]);
    printf("%d\n",d[len]);
    for(int i=1;i<=n;i++) print(xi[i],yi[i]);
    return 0;
}


