import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { boolean impossible = false; if (i_start % 2 != i_end % 2 || ((Math.abs(i_start - i_end) / 2) % 2 == 0 && j_start % 2 != j_end % 2) || ((Math.abs(i_start - i_end) / 2) % 2 != 0 && j_start % 2 == j_end % 2)) { System.out.println("Impossible"); impossible = true; } else { int verticalmoves = Math.abs(i_start - i_end) / 2; int horizontalmoves = 0; if (j_start != j_end) { horizontalmoves = (Math.abs(j_start - j_end) - verticalmoves) / 2; } System.out.println(verticalmoves + horizontalmoves); } boolean done = false; int i_cur = i_start; int j_cur = j_start; while (!done && !impossible) { if (i_cur == i_end && j_cur == j_end) { done = true; break; } if (i_cur > i_end) { if (j_cur > j_end) { System.out.print("UL "); i_cur -= 2; j_cur--; } else if (j_cur < j_end) { System.out.print("UR "); i_cur -= 2; j_cur++; } else { System.out.print("UL "); i_cur -= 2; j_cur--; } } else if (i_cur < i_end) { if (j_cur < j_end) { System.out.print("LR "); i_cur += 2; j_cur++; } else if (j_cur > j_end) { System.out.print("LL "); i_cur += 2; j_cur--; } else { System.out.print("LR "); i_cur += 2; j_cur++; } } else if (i_cur == i_end) { if (j_cur < j_end) { System.out.print("R "); j_cur += 2; } else if (j_cur > j_end) { System.out.print("L "); j_cur -= 2; } } } } public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); int i_start = in.nextInt(); int j_start = in.nextInt(); int i_end = in.nextInt(); int j_end = in.nextInt(); printShortestPath(n, i_start, j_start, i_end, j_end); in.close(); } }