#!/bin/python import sys directions = {(-2, -1): "UL", (-2, 1): "UR", (0, -2): "L", (0, 2): "R", (2, -1): "LL", (2, 1): "LR"} def printShortestPath(n, i_start, j_start, i_end, j_end): # Print the distance along with the sequence of moves. deltaI = i_end - i_start if deltaI % 2 == 1: print("Impossible") return deltaI2 = deltaI // 2 deltaJ = j_end - j_start if deltaI2 % 2 == 1: if (deltaJ % 2) == 0: print("Impossible") return elif (deltaJ % 2) == 1: print("Impossible") return path = [] # priority UL, UR, R, LR, LL, L if abs(deltaI2) <= abs(deltaJ): if deltaI2 <= 0: if deltaJ <= 0: path = ["UL"]*abs(deltaI2) + ["L"]*((abs(deltaJ) - abs(deltaI2))//2) else: path = ["UR"]*abs(deltaI2) + ["R"]*((abs(deltaJ) - abs(deltaI2))//2) elif deltaJ <= 0: path = ["LL"]*abs(deltaI2) + ["L"]*((abs(deltaJ) - abs(deltaI2))//2) else: path = ["R"]*((abs(deltaJ) - abs(deltaI2))//2) + ["LR"]*abs(deltaI2) else: # abs(deltaI2) > abs(deltaJ) halfZigZagHeight = (abs(deltaI2) - abs(deltaJ))//2 maxLeftSteps = j_start maxRightSteps = (n - 1 - j_start) if deltaI2 <= 0: if deltaJ <= 0: if abs(deltaJ) + halfZigZagHeight > maxLeftSteps: backAndForth = abs(deltaJ) + halfZigZagHeight - maxLeftSteps path = (["UL"] * maxLeftSteps + ["UR", "UL"] * backAndForth + ["UR"] * (halfZigZagHeight - backAndForth)) else: path = ["UL"]*(abs(deltaJ)+halfZigZagHeight) + ["UR"]*halfZigZagHeight elif halfZigZagHeight > maxLeftSteps: backAndForth = halfZigZagHeight - maxLeftSteps path = (["UL"] * maxLeftSteps + ["UR", "UL"] * backAndForth + ["UR"] * (abs(deltaJ) + halfZigZagHeight - backAndForth)) else: path = ["UL"] * halfZigZagHeight + ["UR"] * (abs(deltaJ) + halfZigZagHeight) elif deltaJ >= 0: # deltaI2 > 0 if abs(deltaJ) + halfZigZagHeight > maxRightSteps: backAndForth = abs(deltaJ) + halfZigZagHeight - maxRightSteps path = (["LR"] * maxRightSteps + ["LL", "LR"] * backAndForth + ["LL"] * (halfZigZagHeight - backAndForth)) else: path = ["LR"]*(abs(deltaJ)+halfZigZagHeight) + ["LL"]*halfZigZagHeight elif halfZigZagHeight > maxRightSteps: # deltaJ > 0 and deltaI2 > 0: backAndForth = halfZigZagHeight - maxRightSteps path = (["LR"] * maxRightSteps + ["LL", "LR"] * backAndForth + ["LL"] * (abs(deltaJ) + halfZigZagHeight - backAndForth)) else: path = ["LR"] * halfZigZagHeight + ["LL"] * (abs(deltaJ) + halfZigZagHeight) print(len(path)) print(" ".join(path)) if __name__ == "__main__": n = int(raw_input().strip()) i_start, j_start, i_end, j_end = raw_input().strip().split(' ') i_start, j_start, i_end, j_end = [int(i_start), int(j_start), int(i_end), int(j_end)] printShortestPath(n, i_start, j_start, i_end, j_end)