#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
const int mod=1000000007,MAX=1<<20,INF=1<<30;

int main(){
    
    int N;cin>>N;
    vector<ll> X(N),Y(N);
    bool odd=false,even=false;
    for(int i=0;i<N;i++){
        cin>>X[i]>>Y[i];
        if((X[i]+Y[i])%2==0) even=true;
        else odd=true;
    }
    
    if(even&&odd) cout<<"-1"<<endl;
    else{
        if(odd){
            cout<<33<<endl;
            ll a=1;
            for(int i=0;i<33;i++){
                if(i) cout<<" ";
                cout<<a;
                a*=2;
            }
            cout<<endl;
            a--;
            
            for(int i=0;i<N;i++){
                ll diff=(a-abs(X[i])-abs(Y[i]))/2;
                vector<bool> which(33,0);
                for(int j=0;j<33;j++){
                    if(diff&(1LL<<j)) which[j]=1;//逆向き
                }
                ll x=abs(X[i]),y=abs(Y[i]);
                for(int j=0;j<33;j++){
                    if(x&(1LL<<j)){
                        if(X[i]>=0){
                            if(which[j]){
                                cout<<'L';
                                x+=(1LL<<j);
                            }else{
                                cout<<'R';
                                x-=(1LL<<j);
                            }
                        }else{
                            if(which[j]){
                                cout<<'R';
                                x+=(1LL<<j);
                            }else{
                                cout<<'L';
                                x-=(1LL<<j);
                            }
                        }
                    }else{
                        if(Y[i]>=0){
                            if(which[j]){
                                cout<<'D';
                                y+=(1LL<<j);
                            }else{
                                cout<<'U';
                                y-=(1LL<<j);
                            }
                        }else{
                            if(which[j]){
                                cout<<'U';
                                y+=(1LL<<j);
                            }else{
                                cout<<'D';
                                y-=(1LL<<j);
                            }
                        }
                    }
                }
                cout<<endl;
            }
        }else{
            cout<<34<<endl;
            ll a=1;
            for(int i=0;i<33;i++){
                if(i) cout<<" ";
                cout<<a;
                a*=2;
            }
            cout<<" 1";
            cout<<endl;
            
            for(int i=0;i<N;i++){
                ll diff=(a-abs(X[i])-abs(Y[i]))/2;
                vector<bool> which(33,0);
                for(int j=0;j<33;j++){
                    if(diff&(1LL<<j)) which[j]=1;//逆向き
                }
                ll x=abs(X[i]),y=abs(Y[i]);
                for(int j=0;j<33;j++){
                    if(x&(1LL<<j)){
                        if(X[i]>=0){
                            if(which[j]){
                                cout<<'L';
                                x+=(1LL<<j);
                            }else{
                                cout<<'R';
                                x-=(1LL<<j);
                            }
                        }else{
                            if(which[j]){
                                cout<<'R';
                                x+=(1LL<<j);
                            }else{
                                cout<<'L';
                                x-=(1LL<<j);
                            }
                        }
                    }else{
                        if(Y[i]>=0){
                            if(which[j]){
                                cout<<'D';
                                y+=(1LL<<j);
                            }else{
                                cout<<'U';
                                y-=(1LL<<j);
                            }
                        }else{
                            if(which[j]){
                                cout<<'U';
                                y+=(1LL<<j);
                            }else{
                                cout<<'D';
                                y-=(1LL<<j);
                            }
                        }
                    }
                }
                if(x==1){
                    if(X[i]>=0) cout<<'R';
                    else cout<<'L';
                }else{
                    if(Y[i]>=0) cout<<'U';
                    else cout<<'D';
                }
                cout<<endl;
            }
        }
    }
    
}


Measured memory_bytes: 256