import java.io.*; import java.util.*; public class TaskB { static int dx[]; static int dy[]; static int n, si, sj, ei, ej; static int dp[][]; static String l[]; static List res = new LinkedList<>(); public static void copy(int p[], int dxx[], int dyy[], String[] path) { for (int i = 0; i < p.length; i++) { dx[i] = dxx[p[i] - 1]; dy[i] = dyy[p[i] - 1]; l[i] = path[p[i] - 1]; } } public static boolean nextPermuation(int p[], int[] dxx, int[] dyy,String path[]) { for (int a = p.length - 2; a >= 0; --a) if (p[a] < p[a + 1]) for (int b = p.length - 1;; --b) if (p[b] > p[a]) { int t = p[a]; p[a] = p[b]; p[b] = t; for (++a, b = p.length - 1; a < b; ++a, --b) { t = p[a]; p[a] = p[b]; p[b] = t; } // System.out.println(Arrays.toString(p)); copy(p, dxx, dyy,path); return true; } return false; } public static boolean match(int i, int j) { for (int k = 0; k < dx.length; k++) { if (ei == i + dx[k] && ej == j + dy[k]) { res.add(l[k]); // System.out.println(res); return true; } } return false; } public static int Solve(int i, int j, int p) { if (i < 0 || j < 0 || i >= n || j >= n || dp[i][j] != 0) return 0; dp[i][j] = 1; if (p >= 0) res.add(l[p]); // System.out.println(i + "," + j); if (i == ei && j == ej) { return 1; } if (match(i, j)) return 1; for (int k = 0; k < dx.length; k++) { int x = i + dx[k]; int y = j + dy[k]; if (Solve(x, y, k) == 1) return 1; } return 0; } public static void main(String args[]) throws Exception { FastReader sc = new FastReader(); PrintWriter out = new PrintWriter(System.out); n = sc.nextInt(); si = sc.nextInt(); sj = sc.nextInt(); ei = sc.nextInt(); ej = sc.nextInt(); dp = new int[n][n]; dx = new int[6]; dy = new int[6]; int dxx[] = new int[] { -2, -2, 0, 2, 2, 0 }; int dyy[] = new int[] { -1, 1, 2, 1, -1, -2 }; int[] p = { 1, 2, 3, 4, 5, 6 }; List fA = new LinkedList<>(); for (int i = 0; i < 10000; i++) { fA.add("-1"); } l=new String[6]; String path[] = { "UL", "UR", "R", "LR", "LL", "L" }; copy(p, dxx, dyy,path); do { for (int i = 0; i < n; i++) { Arrays.fill(dp[i], 0); } if (Solve(si, sj, -1) == 1) { if (fA.size() > res.size()) { // System.out.println(Arrays.toString(p)); fA.clear(); fA.addAll(res); } } res.clear(); } while (nextPermuation(p, dxx, dyy,path)); if (fA.get(1).equals("-1")) { System.out.println("Impossible"); return; } System.out.println(fA.size()); for (String s : fA) { System.out.print(s + " "); } out.close(); } static class FastReader { BufferedReader br; StringTokenizer st; public FastReader() { br = new BufferedReader(new InputStreamReader(System.in)); } String next() { while (st == null || !st.hasMoreElements()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } int nextInt() { return Integer.parseInt(next()); } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } String nextLine() { String str = ""; try { str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } } }