import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Stack;


public class Faux {

	public static String map[];
	public static BufferedReader in;
	public static Stack<String> dirs;
	public static int l;
	
	public static void main(String args[]) {
		map = new String[100];
		dirs = new Stack<String>();
		try {
			in = new BufferedReader(new FileReader("map.txt"));
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		l = 0;
		String s;
		try {
			while ((s = in.readLine()) != null) {
				map[l++] = s;
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
		int x,y=0;
		// find start
		x = map[0].indexOf('X');
		
		choose(x,0);
		String output = "";
		for (String d : dirs) {
			output = output+d;
		}
		System.out.println(output);
		int r = 0;
	}
	
	public static boolean choose(int x, int y) {
		if (y > l-2) return true;
		if (x > 1 && getCharAt(x-1,y+1) != '#') {
			dirs.push("l");
			if (choose(x-1,y+1)) { setCharAt(x-1,y+1,'!'); return true; }
			else dirs.pop();
		}
		if (x < map[y].length() && getCharAt(x+1,y+1) != '#') {
			dirs.push("r");
			if (choose(x+1,y+1)) { setCharAt(x+1,y+1,'!'); return true; }
			else { setCharAt(x, y, '#'); dirs.pop(); }
		}
		return false;
	}
	
	public static char getCharAt(int x, int y) {
		if (map[y] == null) return '#';
		char c;
		try { c = map[y].charAt(x); } catch (Exception e) { c = '#'; }
		return c;
	}
	
	public static void setCharAt(int x, int y, char c) {
		map[y] = map[y].substring(0, x)+c+map[y].substring(x+1);
	}
}

