#include<bits/stdc++.h>
using namespace std;
const int maxx=1005;
struct node{
int x,y;
string str;
node(int _x,int _y,string _str){
x=_x;
y=_y;
str=_str;
}
};
queue<node>q;
int x[4]={1,0,0,-1};
int y[4]={0,-1,1,0};
int vis[maxx][maxx];
char a[maxx][maxx];
void bfs(){
vis[1][1]=1;
q.push(node(1,1,""));
while(!q.empty()){
node tmp1=q.front();
q.pop();
if(tmp1.x==30&&tmp1.y==50){
cout<<vis[tmp1.x][tmp1.y]<<endl;
cout<<tmp1.str;
break;
}
for(int i=0;i<4;i++){
int tx=tmp1.x+x[i];
int ty=tmp1.y+y[i];
if(tx>=1&&tx<=30&&ty>=1&&ty<=50&&
a[tx][ty]=='0'&&!vis[tx][ty]){
string s;
if (i == 0){
s = "D";
} else if(i == 1) {
s = "L";
} else if (i == 2) {
s = "R";
} else {
s = "U";
}
vis[tx][ty]=vis[tm][ty]+1;
// tmp2.str+=s;
q.push(node(tx,ty,tmp1.str+s));
}
}
}
}
int main(){
for(int i=1;i<=30;i++){
for(int j=1;j<=50;j++){
cin>>a[i][j];
}
}
bfs();
return 0;
}