#include <set>
#include <map>
#include <list>
#include <queue>
#include <stack>
#include <cmath>
#include <ctype.h>
#include <ctime>
#include <cstdio>
#include <vector>
#include <string>
#include <bitset>
#include <cctype>
#include <cstdlib>
#include <cstring>
#include <utility>
#include <numeric>
#include <complex>
#include <sstream>
#include <fstream>
#include <iomanip>
#include <cassert>
#include <iostream>
#include <iterator>
#include <algorithm>

using namespace std;

#define REP(i, x, n) for(int i = x; i < n; i++)
#define rep(i, n) REP(i, 0, n)
#define lengthof(x) (sizeof(x) / sizeof(*(x)))
#define FILL(ptr, value) FILL_((ptr), sizeof(ptr)/sizeof(value), (value))
template <typename T>
void FILL_(void * ptr, size_t size, T value){
  std::fill((T*)ptr, (T*)ptr+size, value);
}
//参考http://hadrori.hateblo.jp/entry/aoj0037 
const int dx[] ={-1,0,1,0};
const int dy[] ={0,-1,0,1};
int path[16][16][4];//0:L,1:U,2:R,3:D
int main()
{
  char c;
  for(int i = 0;i <9;i++){
    if(i%2){
      for(int j = 0;j < 5;j++){
	cin >>c;
	if(c =='1'){
	  path[i/2][j][3] = 1;
	  path[i/2+1][j][1] = 1;
	}
      }
    }else{
      for(int j = 0;j < 4;j++){
	cin >>c;
	if(c =='1'){
	  path[i/2][j][2] = 1;
	  path[i/2][j+1][0] = 1;
	}
      }
    }
  }
  int x = 0,y = 0,d = 2;
  /*
(前の方向：右 の場合)
進む方向の優先順位は、上、右、下、左となる。

(前の方向：左 の場合)
進む方向の優先順位は、下、左、上、右となる。

(前の方向：上 の場合)
進む方向の優先順位は、左、上、右、下となる。

(前の方向：下 の場合)
  進む方向の優先順位は、右、下、左、上となる。*/
  string dir ="LURD";
  do{
    for(int i = 0;i < 4;i++){
      int dd =(d+i)%4;
      if(path[y][x][dd]==1){
	path[y][x][dd] -=1;
	x +=dx[dd];
	y +=dy[dd];
	d = dd;
	cout <<dir[dd];
	break;
      }
    }
  }while(x||y);
  cout <<endl;
 
  return 0;
}