from collections import deque def isvalid(i, j): if i < 0 or j < 0 or i >= n or j>=n: return 0 return 1 def bfs(x, y): global parent q = deque() q.append((x, y)) while len(q) > 0: x, y = q.popleft() for _ in range(6): i = x + dir_x[_] j = y + dir_y[_] if (i, j) not in visited and isvalid(i, j): dist[i][j] = 1 + dist[x][y] q.append((i, j)) visited.add((i, j)) parent[i][j] = (x, y) def backtrack(i_e, j_e): while i_e !=i_s or j_e!=j_s: p=parent[i_e][j_e] if i_e-p[0]==-2: if j_e-p[1]==-1: ans.append("UL") else: ans.append("UR") elif i_e-p[0]==0: if j_e-p[1]==2: ans.append("R") else: ans.append("L") else: if j_e-p[1]==-1: ans.append("LL") else: ans.append("LR") i_e=p[0] j_e=p[1] return n = int(raw_input()) i_s, j_s, i_e, j_e = map(int, raw_input().split()) dir_x = [-2, -2, 0, 2, 2, 0] dir_y = [-1, 1, 2, 1, -1, -2] dist = [[0]*n for i in range(n)] ans=[] # UL, UR, R, LR, LL, L visited =set() parent = [[0]*n for i in range(n)] bfs(i_s, j_s) if dist[i_e][j_e]==0: if i_e!=i_s and j_e!=j_s: print "Impossible" else: backtrack(i_e,j_e) ans.reverse() print dist[i_e][j_e] print " ".join(ans)