{$mode objfpc} var i,n,x1,y1,x2,y2:integer; sx,sy,tx,ty,x,y:integer; check:array[0..300,0..300] of boolean; cnt,dem:integer; dx,dy:array[0..100000] of integer; movex,movey:array[0..6] of integer; kind:array[0..6] of string; tracex,tracey,count:array[0..300,0..300] of integer; tracek:array[0..300,0..300] of string; kq:array[0..100000] of string; begin read(n); read(x1,y1,x2,y2); dem:=1; dx[1]:=x1; dy[1]:=y1; check[x1,y1]:=true; movex[1]:=-2; movey[1]:=-1; kind[1]:='UL'; movex[2]:=-2; movey[2]:=+1; kind[2]:='UR'; movex[3]:=0; movey[3]:=+2; kind[3]:='R'; movex[4]:=+2; movey[4]:=+1; kind[4]:='LR'; movex[5]:=+2; movey[5]:=-1; kind[5]:='LL'; movex[6]:=0; movey[6]:=-2; kind[6]:='L'; cnt:=1; while cnt <= dem do begin for i:=1 to 6 do begin x:=dx[cnt] + movex[i]; y:=dy[cnt] + movey[i]; if (x < 0) or (y < 0) or (x >= n) or (y >= n) then continue; if not check[x,y] then begin check[x,y]:=true; tracex[x,y]:=dx[cnt]; tracey[x,y]:=dy[cnt]; tracek[x,y]:=kind[i]; count[x,y]:=count[dx[cnt],dy[cnt]]+1; inc(dem); dx[dem]:=x; dy[dem]:=y; end; end; inc(cnt); end; x:=x2; y:=y2; if not check[x,y] then begin write('Impossible'); halt; end; writeln(count[x,y]); cnt:=0; while (x <> x1) or (y <> y1) do begin inc(cnt); kq[cnt]:=tracek[x,y]; x2:=tracex[x,y]; y2:=tracey[x,y]; x:=x2; y:=y2; end; for i:=cnt downto 1 do write(kq[i],' '); end.