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) { ArrayList moves = new ArrayList<>(); moves = findNextMove(n, i_start, j_start, i_end, j_end, moves); if(moves.size() == 0) System.out.println("Impossible"); else { System.out.println(moves.size()); for(String m : moves){ System.out.print(m+" "); } } } static ArrayList findNextMove(int n, int i_current, int j_current, int i_end, int j_end, ArrayList moves){ //System.out.println("start position: ("+i_current+","+j_current+") => ("+i_end+","+j_end+")"); String move = ""; int i_after = 0; int j_after = 0; //Should we move up or down, if they are the same, dont move if(i_current < i_end) move = "L"; else if(i_current > i_end) move = "U"; else move = ""; //Should we move left or right, if they are the same, don't move if(j_current < j_end) move += "R"; else if(j_current > j_end) move += "L"; else if(j_current == j_end){ //If they are the same, then we choose according to the priorities if(move.equals("U")) move += "L"; else if(move.equals("L")) move += "R"; else move = ""; } //if no moves, we have arrived at destination if(move.length() == 0) return moves; //Calculate final position switch(move){ case "UL": i_after = i_current - 2; j_after = j_current - 1; break; case "UR": i_after = i_current - 2; j_after = j_current + 1; break; case "R": j_after = j_current + 2; break; case "LR": i_after = i_current + 2; j_after = j_current + 1; break; case "LL": i_after = i_current + 2; j_after = j_current - 1; break; case "L": j_after = j_current - 2; break; } //TODO: impossible?? //if the moves put us outside the grid if(i_after < 0 || i_after >= n || j_after < 0 || j_after >= n) return new ArrayList(); //if we have too many moves if(moves.size() > Math.pow(n,2)){ return new ArrayList(); } moves.add(move); return findNextMove(n, i_after, j_after, i_end, j_end, 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(); } }