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) { // Print the distance along with the sequence of moves. if ((i_start - i_end) % 2 != 0) { System.out.println("Impossible"); return; } int num_verts = (i_start - i_end) / 2; if ((j_start - j_end + num_verts) % 2 != 0) { System.out.println("Impossible"); return; } int numJumps = 0; StringBuilder sb = new StringBuilder(); int i_curr = i_start; int j_curr = j_start; while (i_curr > i_end) { ++numJumps; i_curr -= 2; if (j_curr > j_end) { sb.append("UL "); j_curr -= 1; } else if (j_curr < j_end) { sb.append("UR "); j_curr += 1; } else if (j_curr == j_end) { if (j_curr == 0) { sb.append("UR "); j_curr += 1; } else { sb.append("UL "); j_curr -= 1; } } } num_verts = (i_end - i_curr) / 2; while (j_curr < j_end - num_verts) { ++numJumps; sb.append("R "); j_curr += 2; } while (i_curr < i_end) { ++numJumps; i_curr += 2; if (j_curr < j_end) { sb.append("LR "); j_curr += 1; } else if (j_curr > j_end) { sb.append("LL "); j_curr -= 1; } else if (j_curr == j_end) { if (j_curr == 0) { sb.append("LL "); j_curr -= 1; } else { sb.append("LR "); j_curr += 1; } } } while (j_curr > j_end) { ++numJumps; sb.append("L"); j_curr -= 2; } System.out.println(numJumps); System.out.println(sb.toString()); } 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(); } }