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) { // Print the distance along with the sequence of moves. int[][] minArr = new int[n][n]; for (int i = 0; i < n; i++) { Arrays.fill(minArr[i], Integer.MAX_VALUE); } String[][] strArr = new String[n][n]; minArr[i_start][j_start] = 0; strArr[i_start][j_start] = ""; int[][] dir = {{-2, -1}, {-2, 1}, {0, 2}, {2, 1}, {2, -1}, {0, -2}}; String[] dirStr = {"UL", "UR", "R", "LR", "LL", "L"}; backtrack(minArr, strArr, i_start, j_start, dir, dirStr); if (minArr[i_end][j_end] == Integer.MAX_VALUE) { System.out.println("Impossible"); } else { System.out.println(minArr[i_end][j_end]); System.out.println(strArr[i_end][j_end]); } } public static void backtrack(int[][] minArr, String[][] strArr, int i1, int i2, int[][] dir, String[] dirStr) { for (int i = 0; i < 6; i++) { int[] d = dir[i]; if (i1 + d[0] >= 0 && i1 + d[0] < minArr.length && i2 + d[1] >= 0 && i2 + d[1] < minArr.length) { if (minArr[i1 + d[0]][i2 + d[1]] > minArr[i1][i2] + 1) { minArr[i1 + d[0]][i2 + d[1]] = minArr[i1][i2] + 1; strArr[i1 + d[0]][i2 + d[1]] = strArr[i1][i2] + dirStr[i] + " "; backtrack(minArr, strArr, i1 + d[0], i2 + d[1], dir, dirStr); } } } } 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(); } }