#!/bin/python3 import sys def reachable(i_start, j_start, i_end, j_end): remote_point = {'row': j_end - j_start, 'col': i_start - i_end} if remote_point['col'] % 2 != 0 or (remote_point['row'] - remote_point['col'] / 2) % 2 != 0: return None else: return remote_point def make_move(remote_point, move): remote_point['row'] = remote_point['row'] - move['row'] remote_point['col'] = remote_point['col'] - move['col'] return remote_point def printShortestPath(n, i_start, j_start, i_end, j_end): steps = { 'UL': {'row': -1, 'col': 2}, 'UR': {'row': 1, 'col': 2}, 'LL': {'row': -1, 'col': -2}, 'LR': {'row': 1, 'col': -2}, 'L': {'row': -2, 'col': 0}, 'R': {'row': 2, 'col': 0}, } moves = [] remote_point = reachable(i_start, j_start, i_end, j_end) if remote_point is None: print('Impossible') return while remote_point != {'row': 0, 'col': 0}: if remote_point['col'] > 0: # Upper if remote_point['row'] < 0: # On the left moves.append('UL') remote_point = make_move(remote_point, steps['UL']) else: moves.append('UR') remote_point = make_move(remote_point, steps['UR']) elif remote_point['col'] < 0: if remote_point['row'] < 0: moves.append('LL') remote_point = make_move(remote_point, steps['LL']) else: moves.append('LR') remote_point = make_move(remote_point, steps['LR']) elif remote_point['col'] == 0: if remote_point['row'] < 0: moves.append('L') remote_point = make_move(remote_point, steps['L']) else: moves.append('R') remote_point = make_move(remote_point, steps['R']) print(len(moves)) for move in moves: print('{} '.format(move), end='') 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)