from collections import defaultdict as ddi from collections import deque as dq #draw = {(1,2):'UR',(2,1):'',(-1,2),(-2,1),(1,-2),(2,-1),(-1,-2),(-2,-1)}: draw = {(-1,-2):'UL',(1,-2):'UR',(2,0):'R',(1,2):'LR',(-1,2):'LL',(-2,0):'L'} # Enter your code here. Read input from STDIN. Print output to STDOUT big = 1000000000000 dist = ddi(lambda: big) found = set() n = int(input()) y,x,Y,X = [int(x) for x in input().split()] parent = ddi(lambda: None) drag = ddi(lambda: None) Q =dq() Q.append((x,y,x,y,0,-1,-1)) while Q: nx,ny,px,py,d,Dx,Dy = Q.popleft() if nx<0 or nx>=n or ny<0 or ny>=n or (nx,ny) in found: continue found.add((nx,ny)) parent[nx,ny]=(px,py) drag[nx,ny]=(Dx,Dy) dist[nx,ny]=d for dx,dy in [(-1,-2),(1,-2),(2,0),(1,2),(-1,2),(-2,0)]: Q.append((nx+dx,ny+dy,nx,ny,d+1,dx,dy)) if parent[X,Y]==None: print('Impossible') else: nodes = [(X,Y)] while parent[nodes[-1]]!=nodes[-1]: nodes.append(parent[nodes[-1]]) dr = [] for n in nodes[:-1]: dr.append(draw[drag[n]]) print(dist[X,Y]) print(*dr[::-1])