import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static class Node{ int i; int j; String path; int count; public Node(int x, int y, String pa, int c){ i = x; j = y; path=pa; count = c; } } static void printShortestPath(int n, int i_s, int j_s, int i_e, int j_e) { // Print the distance along with the sequence of moves. Queue q = new LinkedList(); q.add(new Node(i_s, j_s, "",0)); boolean [][] vs = new boolean[n][n]; for(int i=0; i < n; i++ ){ for(int j = 0; j < n;j++){ vs[i][j] = false; } } while(!q.isEmpty()){ Node temp = q.poll(); int i = temp.i; int j = temp.j; int c = temp.count; String path = temp.path; vs[i][j] = true; if(i_e == i && j_e == j){ System.out.println(c); System.out.println(path); return; } if(i_e < i && j_e <= j && i-2 >=0 && j-1 >=0 && !vs[i-2][j-1]){ String pa = path+"UL "; q.add(new Node(i-2, j-1, pa,c+1)); } else if(i_e < i && j_e >= j && i-2 >=0 && j+1 <= n-1 && !vs[i-2][j+1]){ String pa = path+ "UR "; q.add(new Node(i-2, j+1, pa,c+1)); } else if(j_e > j && j+2 <= n-1 && !vs[i][j+2]){ String pa = path+ "R "; q.add(new Node(i, j+2, pa,c+1)); } else if(i_e > i && j_e>= j && i+2 <=n-1 && j+1 <= n-1 && !vs[i+2][j+1]){ String pa = path+ "LR "; q.add(new Node(i+2, j+1, pa,c+1)); } else if(i_e > i && j_e <= j && i+2 <=n-1 && j-1 >= 0 && !vs[i+2][j-1]){ String pa = path+ "LL "; q.add(new Node(i+2, j-1, pa,c+1)); } else if(j_e < j && j-2 >= 0 && !vs[i][j-2]){ String pa = path+ "L "; q.add(new Node(i, j-2, pa,c+1)); } } System.out.println("Impossible"); } 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(); } }