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 id = i_end -i_start; int jd = j_end -j_start; int steps=0; String str=""; if(id%2!=0){System.out.print("Impossible");} else{ do{ if(id>0&&jd>=0){ str+="LR "; int[] i =LR(i_start,j_start); steps++; i_start=i[0]; j_start=i[1]; } else if(id>0&&jd<=0){ str+="LL "; int[] i =LL(i_start,j_start); steps++; i_start=i[0]; j_start=i[1]; } else if(id<0&&jd>=0){ str+="UR "; int[] i =UR(i_start,j_start); steps++; i_start=i[0]; j_start=i[1]; } else if(id<0&&jd<=0){ str+="UL "; int[] i =UL(i_start,j_start); steps++; i_start=i[0]; j_start=i[1]; } else if(id==0&&jd<=0){ str+="R "; j_start = R(j_start); steps++; } else if(id==0&&jd>=0){ str+="L "; j_start = L(j_start); steps++; } id = i_end -i_start; jd = j_end -j_start; }while(id!=0&&jd!=0); System.out.println(steps); System.out.println(str); } } static int[] LL (int i_start, int j_start){ int[] r ={i_start+2,j_start-1}; return r; } static int[] LR (int i_start, int j_start){ int[] r = {i_start+2,j_start+1}; return r; } static int[] UL (int i_start, int j_start){ int[] r = {i_start-2,j_start-1}; return r; } static int[] UR (int i_start, int j_start){ int[] r= {i_start-2,j_start+1}; return r; } static int L (int j_start){ return j_start-2; } static int R ( int j_start){ return j_start+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(); } }