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 upDown = i_start - i_end; int lR = j_start - j_end; List directions = getDirections(upDown,lR); //System.out.println(directions); Map> directionIndexMap = new HashMap>(); directionIndexMap.put("UL",Arrays.asList(-2,-1)); directionIndexMap.put("UR",Arrays.asList(-2,1)); directionIndexMap.put("R",Arrays.asList(0,2)); directionIndexMap.put("LR",Arrays.asList(2,1)); directionIndexMap.put("LL",Arrays.asList(2,-1)); directionIndexMap.put("L",Arrays.asList(0,-2)); //System.out.println(directionIndexMap); Queue q = new LinkedList(); Queue q2 = new LinkedList(); q.add(Arrays.asList(i_start,j_start,0)); q2.add(""); int flag=0; String temp; while(true){ List index = new ArrayList(); if(!q.isEmpty()){ index = q.remove(); temp = q2.remove(); // System.out.println("11"+temp+"22"); } else{ System.out.println("Impossible"); break; } for(int i=0;i= 0) && (y >= 0)) {q.add(Arrays.asList(x,y,z)); String t2=temp+directions.get(i)+" "; q2.add(t2); if((x == i_end)&&(y == j_end )){ System.out.println(z+"\n"+t2); flag=1; } } if(flag == 1) break; } if(flag == 1) break; } // System.out.println("99"+q); } static List getDirections(int upDown, int lR){ List directions = new ArrayList(); if((upDown > 0)&&(lR>0)){ // System.out.println("Top Left"); directions.add("UL"); directions.add("L"); } else if((upDown > 0)&&(lR<0)){ // System.out.println("Top Right"); directions.add("UR"); directions.add("R"); } else if((upDown < 0)&&(lR<0)){ // System.out.println("Down Left"); directions.add("LL"); directions.add("L"); } else if((upDown < 0)&&(lR<0)){ // System.out.println("Down Right"); directions.add("R"); directions.add("LR"); } else if((upDown == 0)&&(lR>0)){ //System.out.println("Same row Left"); directions.add("UL"); directions.add("LL"); directions.add("L"); } else if((upDown == 0)&&(lR<0)){ //System.out.println("Same row right"); directions.add("UR"); directions.add("R"); directions.add("LR"); } else if((upDown > 0)&&(lR == 0)){ // System.out.println("Top same column"); directions.add("UL"); directions.add("UR"); directions.add("R"); directions.add("L"); } else if((upDown < 0)&&(lR == 0)){ // System.out.println("Down Same column"); directions.add("R"); directions.add("LR"); directions.add("LL"); directions.add("L"); } return directions; } 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(); } }