import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { private static class Position { int x, y, from; public Position(int x, int y, int from) { this.x = x; this.y = y; this.from = from; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + from; result = prime * result + x; result = prime * result + y; return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Position other = (Position) obj; if (from != other.from) return false; if (x != other.x) return false; if (y != other.y) return false; return true; } } static int[][] positions = { { -2, -1 }, { -2, 1 }, { 0, 2 }, { 2, 1 }, { 2, -1 }, { 0, -2 } }; static String[] positionStrings = { "UL", "UR", "R", "LR", "LL", "L" }; static int min = Integer.MAX_VALUE; static List finalList; public static void solve(int x1, int y1, int x2, int y2, Set isVisited, int count, int lastPositionIndex, int n, Deque values) { Position position = new Position(x1, y1, lastPositionIndex); if (x1 >= n || x1 < 0 || y1 >= n || y1 < 0) { return; } if (x1 == x2 && y1 == y2 && count < min) { min = Integer.min(min, count); finalList = new ArrayList<>(values); return; } if (isVisited.contains(position)) { return; } isVisited.add(position); for (int i = lastPositionIndex; i < positions.length; i++) { values.push(i); solve(x1 + positions[i][0], y1 + positions[i][1], x2, y2, isVisited, count + 1, i, n, values); values.pop(); } } static void printShortestPath(int n, int x1, int y1, int x2, int y2) { final Set isVisited = new HashSet<>(); final Deque values = new ArrayDeque<>(); solve(x1, y1, x2, y2, isVisited, 0, 0, n, values); if (min == Integer.MAX_VALUE) { System.out.println("Impossible"); return; } System.out.println(min); for (int i=finalList.size() - 1; i>=0; i--) System.out.print(positionStrings[finalList.get(i)] + " "); } 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(); } }