#include <iostream>
#include <vector>
#include <string>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <map>
#include <algorithm>	// require sort next_permutation count __gcd reverse etc.
#include <cstdlib>	// require abs exit
#include <cstdio>	// require scanf printf
#include <functional>
#include <numeric>	// require accumulate
#include <cmath>
#include <climits>
#include <limits>
#include <cfloat>
#include <iomanip>	// require setw
#include <sstream>	// require stringstream 
#include <cstring>	// require memset
#include <cctype>	// require tolower, toupper
#include <fstream>	// require freopen
#include <ctime>
#define rep(i,n) for(int i=0;i<(n);i++)
#define ALL(A) A.begin(), A.end()
#define TOP 0
#define RIGHT 1
#define BOTTOM 2
#define LEFT 3
#define DEBUG 0
#define DEBUG2 0
using namespace std;

typedef long long ll;
typedef pair<int, int> P;
string FILE_NAME = "testcase.Path_on_a_Grid";
string NAME;
string itos (int n )
{
	stringstream ss;
	ss << n;

	return ss.str();
}
int grid[15][15];
const int dr[] = {-1, 0, 1, 0 };
const int dc[] = { 0, 1, 0,-1 };
const char Dir[] = { 'U', 'R', 'D', 'L' };

string res;
void touch_wall (int row, int col, int dir, int hand )
{
	if ((1<<hand & grid[row][col] ) != 0 )
		res += Dir[dir];	
}

int main()
{
//	cut here before submit 
#if DEBUG
	NAME = FILE_NAME;
	int CNT = 1;
	NAME += itos (CNT );
	while (freopen (NAME.c_str() , "r", stdin ) != NULL ) {
#endif
	memset (grid, 0, sizeof (grid ) );
	string s = "";
	for (int i = 1;getline (cin, s ); i++  ){
//		if (getline (cin, s ) )
//		getline (cin, s );
//		cin >> s;
//		if (s.empty() ) break;
		rep (j, s.length() ){
			if (i % 2 != 0 ){
				if (s[j] == '1' ){
					grid[i/2][j+1] |= 1<<BOTTOM;
					grid[(i+1)/2][j+1] |= 1<<TOP;
				} // end if
			}else{
				if (s[j] == '1' ){
					grid[i/2][j] |= 1<<RIGHT;
					grid[i/2][j+1] |= 1<<LEFT;
				} // end if
			} // end if
		} // end rep
	} // end for

#if DEBUG2
	rep (i, 15 ){
		rep (j, 15 ){
			cout << setw(2) << grid[i][j];
		} // end rep
		cout << endl;
	} // end rep
#endif
	int row = 0, col = 1, dir = RIGHT;
	int hand = (dir+1)%4;
	res = "";
	do{
		touch_wall (row, col, dir, hand );
		if (((1<<hand) & grid[row][col] ) == 0 ){	// 右手の壁がなくなった、なくなった方向に回転
			dir = hand;
		}else{
			while (((1<<dir) & grid[row][col] ) != 0 ){ // 右手の壁があったとしても前に進めない
				dir = (4+dir-1)%4;
				touch_wall (row, col, dir, hand );
			} // end while 
		} // end if
		row = row + dr[dir];
		col = col + dc[dir];
		hand = (dir+1)%4;
#if DEBUG2
		cout << '(' << row << ',' << col << ')' << " dir: " << dir << endl;
#endif
	}while (!(row == 0 && col == 0 ) ); // end while
	cout << res << endl;

#if DEBUG
	CNT++;	// cut here before submit
	NAME = FILE_NAME;
	NAME += itos (CNT );
	} // end loop; cut here before submit
#endif
			
	return 0;
}