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. int vertOffset = Math.abs(i_start-i_end); int horizOffset = Math.abs(j_start-j_end); if(vertOffset % 2 != 0 ||(horizOffset == 0 && vertOffset % 4 != 0)){ System.out.print("Impossible"); } else{ int i_trav=i_start, j_trav = j_start; int numMoves = 0; Vector moves = new Vector(); while(i_trav!=i_end || j_trav!=j_end){ numMoves++; if(i_trav-i_end<0){ if(j_trav-j_end<0){ moves.addElement("LR "); i_trav+=2; j_trav++; } else if (j_trav-j_end>0){ moves.addElement("LL "); i_trav+=2; j_trav--; } else if (j_trav == n-1) { moves.addElement("LL "); i_trav+=2; j_trav--; } else { moves.addElement("LR "); i_trav+=2; j_trav++; } } else if(i_trav-i_end>0){ if(j_trav-j_end<0){ moves.addElement("UR "); i_trav-=2; j_trav++; } else if (j_trav-j_end>0){ moves.addElement("UL "); i_trav-=2; j_trav--; } else if (j_trav == n-1) { moves.addElement("UL"); i_trav-=2; j_trav--; } else { moves.addElement("UR "); i_trav-=2; j_trav++; } } else if(j_trav-j_end>0){ moves.addElement("L "); j_trav-=2; } else if(j_trav-j_end<0){ moves.addElement("R "); j_trav+=2; } } System.out.println(numMoves); for (int i = 0; i< moves.size(); i++){ System.out.print(moves.get(i)); } } } 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(); } }