import java.io.*; import java.util.*; import java.math.*; import java.lang.*; import static java.lang.Math.*; public class Main implements Runnable { static class InputReader { private InputStream stream; private byte[] buf = new byte[1024]; private int curChar; private int numChars; private SpaceCharFilter filter; private BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); public InputReader(InputStream stream) { this.stream = stream; } public int read() { if (numChars==-1) throw new InputMismatchException(); if (curChar >= numChars) { curChar = 0; try { numChars = stream.read(buf); } catch (IOException e) { throw new InputMismatchException(); } if(numChars <= 0) return -1; } return buf[curChar++]; } public String nextLine() { String str = ""; try { str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } public int nextInt() { int c = read(); while(isSpaceChar(c)) c = read(); int sgn = 1; if (c == '-') { sgn = -1; c = read(); } int res = 0; do { if(c<'0'||c>'9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = read(); } while (!isSpaceChar(c)); return res * sgn; } public long nextLong() { int c = read(); while (isSpaceChar(c)) c = read(); int sgn = 1; if (c == '-') { sgn = -1; c = read(); } long res = 0; do { if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = read(); } while (!isSpaceChar(c)); return res * sgn; } public double nextDouble() { int c = read(); while (isSpaceChar(c)) c = read(); int sgn = 1; if (c == '-') { sgn = -1; c = read(); } double res = 0; while (!isSpaceChar(c) && c != '.') { if (c == 'e' || c == 'E') return res * Math.pow(10, nextInt()); if (c < '0' || c > '9') throw new InputMismatchException(); res *= 10; res += c - '0'; c = read(); } if (c == '.') { c = read(); double m = 1; while (!isSpaceChar(c)) { if (c == 'e' || c == 'E') return res * Math.pow(10, nextInt()); if (c < '0' || c > '9') throw new InputMismatchException(); m /= 10; res += (c - '0') * m; c = read(); } } return res * sgn; } public String readString() { int c = read(); while (isSpaceChar(c)) c = read(); StringBuilder res = new StringBuilder(); do { res.appendCodePoint(c); c = read(); } while (!isSpaceChar(c)); return res.toString(); } public boolean isSpaceChar(int c) { if (filter != null) return filter.isSpaceChar(c); return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1; } public String next() { return readString(); } public interface SpaceCharFilter { public boolean isSpaceChar(int ch); } } public static void main(String args[]) throws Exception { new Thread(null, new Main(),"Main",1<<26).start(); } public void run() { InputReader sc = new InputReader(System.in); PrintWriter w = new PrintWriter(System.out); int n = sc.nextInt(); int sx = sc.nextInt(); int sy = sc.nextInt(); int ex = sc.nextInt(); int ey = sc.nextInt(); Queue queue = new LinkedList<>(); Pair ans = null; int visited[][] = new int[n][n]; Pair[][] pair = new Pair[n][n]; visited[sx][sy] = 1; queue.add(new Pair(sx, sy, -1, -1)); while(!queue.isEmpty()) { Pair cur = queue.poll(); pair[cur.x][cur.y] = cur; if(cur.x == ex && cur.y == ey) { ans = cur; break; } int x = cur.x; int y = cur.y; if(y + 2 < n && visited[x][y + 2] == 0) { queue.add(new Pair(x, y + 2, x, y)); visited[x][y + 2] = 1; } if(y - 2 >= 0 && visited[x][y - 2] == 0) { queue.add(new Pair(x, y - 2, x, y)); visited[x][y - 2] = 1; } if(x + 2 < n && y + 1 < n && visited[x + 2][y + 1] == 0) { queue.add(new Pair(x + 2, y + 1, x, y)); visited[x + 2][y + 1] = 1; } if(x + 2 < n && y - 1 >= 0 && visited[x + 2][y - 1] == 0) { queue.add(new Pair(x + 2, y - 1, x, y)); visited[x + 2][y - 1] = 1; } if(x - 2 >= 0 && y + 1 < n && visited[x - 2][y + 1] == 0) { queue.add(new Pair(x - 2, y + 1, x, y)); visited[x - 2][y + 1] = 1; } if(x - 2 >= 0 && y - 1 >= 0 && visited[x - 2][y - 1] == 0) { queue.add(new Pair(x - 2, y - 1, x, y)); visited[x - 2][y - 1] = 1; } } if(ans == null) { w.print("Impossible"); } else { ArrayList list = new ArrayList<>(); int x = ex; int y = ey; while(x != sx && y != sy) { int nx = pair[x][y].px; int ny = pair[x][y].py; if(x - nx == 2 && y - ny == 1) list.add("UR"); if(x - nx == 2 && y - ny == -1) list.add("UL"); if(x - nx == -2 && y - ny == -1) list.add("LL"); if(x - nx == -2 && y - ny == 1) list.add("LR"); if(y - ny == 2) list.add("R"); if(y - ny == -2) list.add("L"); x = nx; y = ny; } w.println(list.size()); for(int i = list.size() - 1; i >= 0; --i) w.print(list.get(i) + " "); } w.close(); } } class Pair { int x; int y; int px; int py; Pair(int a, int b, int c, int d) { x = a; y = b; px = c; py = d; } }