#!/bin/python3 import sys def minPath(i,j,matrix): if i<0 or i >= len(matrix) or j < 0 or j >= len(matrix[0]) or matrix[i][j]=='X': return -1 if matrix[i][j] is not None: return matrix[i][j][0] matrix[i][j]='X' UL=minPath(i-2,j-1,matrix) UR=minPath(i-2,j+1,matrix) R =minPath(i,j+2,matrix) LR=minPath(i+2,j+1,matrix) LL=minPath(i+2,j-1,matrix) L =minPath(i,j-2,matrix) moves=[[LR,'LR'],[R,'R'],[UR,'UR'],[UL,'UL'],[L,'L'],[LL,'LL']] minimum=[-1,"Impossible"] for k in range(len(moves)): if moves[k][0] >=0 and (moves[k][0] < minimum[0] or minimum[0]==-1): minimum = moves[k] minimum[0] = minimum[0]+1 if minimum[0] >-1 else minimum[0] matrix[i][j] = minimum return minimum[0] 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)] row=[None]*n memo = [row[:] for i in range(n)] memo[i_end][j_end] = (0,'END') minPath(i_start,j_start,memo) output,i,j = "",i_start,j_start if memo[i][j][0] == -1: print("Impossible") else: moves={"LL":[2,-1],"LR":[2,1],"UL":[-2,-1],"UR":[-2,1],"L":[0,-2],"R":[0,2]} while memo[i][j][0]!=0: output+= memo[i][j][1]+ " " move =moves[memo[i][j][1]] i+= move[0] j+=move[1] print(memo[i_start][j_start][0]) print(output)