import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Challenge2 { static void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { int x_start = j_start; int y_start = i_start; int x_end = j_end; int y_end = i_end; int c = 0; StringBuilder sb = new StringBuilder(); if(Math.abs(y_start-y_end)%2==1) System.out.print("Impossible"); else { if ((Math.abs(y_start-y_end)%4==0 && Math.abs(x_start-x_end)%2==1) || ((y_start-y_end)!=0 && Math.abs(y_start-y_end)%2==0 && Math.abs(y_start-y_end)%4!=0 && Math.abs(x_start-x_end)%2==0)) System.out.print("Impossible"); else { while ( x_start!=x_end || y_start!=y_end ){ if((y_end-y_start)<0 && (x_end-x_start)<0 /*|| (((y_end-(y_start-2))/2+(x_end-(x_start-1)))<=0 && y_start-2>=0 && x_start-1>=0)*/){ sb.append("UL "); y_start-=2; x_start-=1; c++; } else if((y_end-y_start)<0 && (x_end-x_start)==0){ sb.append("UL "); y_start-=2; x_start-=1; c++; } else if((y_end-y_start)<0 && (x_end-x_start)>0){ sb.append("UR "); y_start-=2; x_start+=1; c++; } else if(((y_end-y_start)==0 && (x_end-x_start)>0) || ((y_end-y_start)/2-(x_end-(x_start+2))<=0)){ sb.append("R "); x_start+=2; c++; } else if(((y_end-y_start)>0 && (x_end-x_start)>0) || (((y_end-(y_start+2))/2+(x_end-(x_start+1)))>=0 && y_start+20 && (x_end-x_start)==0){ sb.append("LR "); y_start+=2; x_start+=1; c++; } else if((y_end-y_start)>0 && (x_end-x_start)<0){ sb.append("LL "); y_start+=2; x_start-=1; c++; } else if((y_end-y_start)==0 && (x_end-x_start)<0){ sb.append("L "); x_start-=2; c++; } } System.out.println(c); if(sb.length()>0) sb.deleteCharAt(sb.length()-1); System.out.print(sb.toString()); } } // Print the distance along with the sequence of moves. } 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(); } }