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 m[][]=new int[n][n]; String result[][]=new String [n][n]; //Arrays.fill(m,Integer.MAX_VALUE); for(int k=0;k=0){ if(j-1>=0 && m[i-2][j-1]>m[i][j]+1){ //UL m[i-2][j-1]= m[i][j]+1; result[i-2][j-1]="UL "+result[i][j]; } if(j+1m[i][j]+1){ //UR m[i-2][j+1]=m[i][j]+1; result[i-2][j+1]="UR "+result[i][j]; } } if(j+2m[i][j]+1){ //R m[i][j+2]=m[i][j]+1; result[i][j+2]="R "+result[i][j]; } if(i+2m[i][j]+1){ m[i+2][j+1]=m[i][j]+1; result[i+2][j+1]=result[i][j]+"LR "; //LR } if(j-1>=0 && m[i+2][j-1]>m[i][j]+1){ m[i+2][j-1]=m[i][j]+1; result[i+2][j-1]=result[i][j]+"LL "; //LL } } if(j-2>=0 && m[i][j-2]>m[i][j]+1){ //L m[i][j-2]=m[i][j]+1; result[i][j-2]=result[i][j-2]+"L "; } } if(j_start!=j_end){ if(j>j_end){ j--; } else if(ji_end){ i--; } else{ i++; } } } else{ if(i>i_end){ j--; if(j<0){ j=j_end; i--; } } else{ j++; if(j==n){ j=j_end; i++; } } } } if(m[i_end][j_end]==Integer.MAX_VALUE) { System.out.println("Impossible"); return; } System.out.println(m[i_end][j_end]); System.out.println(result[i_end][j_end]); } 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(); } }