import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { static int m=Integer.MAX_VALUE; static String s=""; static int print(int n,int i,int j,int x,int y,int[][] board){ if(i==x&&y==j) return 0; if(i<0||j<0||i>=n||j>=n||board[i][j]==2*n) return 2*n; if(board[i][j]>0) return board[i][j]; int ans=2*n; board[i][j]=2*n; ans=Math.min(print(n,i-2,j-1,x,y,board),ans); ans=Math.min(print(n,i-2,j+1,x,y,board),ans); ans=Math.min(print(n,i,j+2,x,y,board),ans); ans=Math.min(print(n,i+2,j+1,x,y,board),ans); ans=Math.min(print(n,i+2,j-1,x,y,board),ans); ans=Math.min(print(n,i,j-2,x,y,board),ans); board[i][j]=ans+1; return board[i][j]; } static void findPath(int n,int i,int j,int x,int y,int[][] arr){ if(i==x&&j==y) return; int val=arr[i][j]; if(i-2>=0&&j-1>=0&&arr[i-2][j-1]==val-1){ System.out.print("UL "); findPath(n,i-2,j-1,x,y,arr); }else if(i-2>=0&&j+1=1&&arr[i+2][j-1]==val-1){ System.out.print("LL "); findPath(n,i+2,j-1,x,y,arr); }else if(j>=2){ System.out.print("L "); findPath(n,i,j-2,x,y,arr); } } 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[][] board=new int[n][n]; int ans=print(n,i_start,j_start,i_end,j_end,board); if(ans<=2*n){ System.out.println(ans); findPath(n,i_start,j_start,i_end,j_end,board); }else{ System.out.println("Impossible"); } } 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(); } }