h=["UL", "UR", "R", "LR", "LL", "L"] l=[(-2,-1),(-2,1),(0,2),(2,1),(2,-1),(0,-2)] def adj(u): d=[] for i in l: r1,r2=u[0]+i[0],u[1]+i[1] if r1-1 and r2-1: d.append((r1,r2)) else: d.append((-1,-1)) return (d) def bfs(s,c,d): level={s:0} parent={s:None} i=1 frontier=[s] while frontier: nex=[] for u in frontier: ty=adj(u) for v in ty: if v!=(-1,-1): if v not in level: level[v]=i parent[v]=(u,h[ty.index(v)]) nex.append(v) if v==(c,d): return (parent) frontier=nex i+=1 return(parent) n=int(input()) a,b,c,d=[int(i) for i in input().split(' ')] f=(bfs((a,b),c,d)) if (c,d) not in f: print("Impossible") s=[] r=(c,d) while(True): if f[r]==None: break else: t=f[r] s.append(t[1]) r=t[0] s=s[::-1] print(len(s)) print(' '.join(s))