#!/bin/python import sys import math def ur(a,b,i_e,j_e): c=a-2 d=b+1 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def ul(a,b,i_e,j_e): c=a-2 d=b-1 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def l(a,b,i_e,j_e): c=a d=b-2 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def r(a,b,i_e,j_e): c=a d=b+2 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def ll(a,b,i_e,j_e): c=a+2 d=b-1 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def lr(a,b,i_e,j_e): c=a+2 d=b+1 dis2=math.sqrt(((c-i_e)**2)+((d-j_e)**2)) return dis2 def printShortestPath(n, i_s, j_s, i_e, j_e): # Print the distance along with the sequence of moves. list1=["UL","UR","R","LR","LL","L"] flag=0 finallist=[] while flag==0: flag1=0 charr=[ul(i_s,j_s,i_e,j_e),ur(i_s,j_s,i_e,j_e),r(i_s,j_s,i_e,j_e),lr(i_s,j_s,i_e,j_e),ll(i_s,j_s,i_e,j_e),l(i_s,j_s,i_e,j_e)] query=[min(charr),charr.index(min(charr))] if (math.fabs(i_s-i_e)<=2 and math.fabs(j_s-j_e)<=2): flag1=0 for a in range(0,len(charr)): if charr[a]==0: finallist.append(list1[query[1]]) print len(finallist) print " ".join(str(x) for x in finallist) flag1=1 flag=1 break if flag1==0: print "Impossible" flag=1 break else: finallist.append(list1[query[1]]) if list1[query[1]]=="UL": i_s=i_s-2 j_s=j_s-1 elif list1[query[1]]=="UR": i_s=i_s-2 j_s=j_s+1 elif list1[query[1]]=="R": j_s=j_s+2 elif list1[query[1]]=="LR": i_s=i_s+2 j_s=j_s+1 elif list1[query[1]]=="LL": i_s=i_s+2 j_s=j_s-1 elif list1[query[1]]=="L": j_s=j_s-2 if __name__ == "__main__": n = int(raw_input().strip()) i_start, j_start, i_end, j_end = raw_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)