#!/bin/python3 import sys def printShortestPath(n, i_start, j_start, i_end, j_end): # Print the distance along with the sequence of moves. seen = {(i_start, j_start)} pathes = [ [(i_start, j_start)] ] reached = False while pathes and not reached: temp = [ ] for path in pathes: x, y = path[-1] ul = (x-2, y-1) ur = (x-2, y+1) r = (x, y+2) l = (x, y-2) lr = (x+2, y+1) ll = (x+2, y-1) order = [ul, ur, r, lr, ll, l] if (i_end, j_end) in order: reached = path[:] + [(i_end, j_end)] break else: for i, j in order: if i in range(n) and j in range(n): if (i, j) not in seen: seen.add((i, j)) temp.append(path[:] + [(i, j)]) pathes = temp if not reached: print('Impossible') else: print(len(reached)-1) order = '' pos = (i_start, j_start) for i, j in reached[1:]: if i == pos[0]: if j > pos[1]: order = order + 'R ' else: order = order + 'L ' else: if i > pos[0]: if j > pos[1]: order = order + 'LR ' else: order = order + 'LL ' else: if j > pos[1]: order = order + 'UR ' else: order = order + 'UL ' pos = (i, j) print(order[:-1]) if __name__ == "__main__": n = int(input().strip()) i_start, j_start, i_end, j_end = 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)