import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public class pairvalues { int x; int y; } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Queue a= new LinkedList(); int [][] visited = new int[200][200] ; String [][] parent = new String[200][200]; List ans = new ArrayList(); public int m,count=0,xsi,ysi,gxi,gyi,n,xw,yw,r1,r2;boolean ty = false; public static void main(String[] args) throws Exception { Solution g=new Solution(); g.input(); } public void input() throws Exception { n = Integer.parseInt(br.readLine()); StringTokenizer t = new StringTokenizer(br.readLine()); xsi=Integer.parseInt(t.nextToken()) ; ysi=Integer.parseInt(t.nextToken()) ; gxi=Integer.parseInt(t.nextToken()) ; gyi=Integer.parseInt(t.nextToken()) ; pairvalues rt=new pairvalues(); rt.x = xsi; rt.y = ysi; a.add(rt); //initial starting points pushed into the array :) visited[xsi][ysi]=1;//visited :) parent[xsi][ysi]="zero"; while(a.isEmpty()==false) { if(ty==false) { bfs(); } else { break; } } if(ty==false) { System.out.println("Impossible"); } else { xw = gxi; yw = gyi; while(parent[xw][yw]!="zero") { ans.add(parent[xw][yw]); if(parent[xw][yw]=="UL") { xw = xw+2; yw = yw-1; } if(parent[xw][yw]=="UR") { xw = xw+2; yw = yw-1; } if(parent[xw][yw]=="R") { xw = xw; yw = yw-2; } if(parent[xw][yw]=="LR") { xw = xw-2; yw = yw-1; } if(parent[xw][yw]=="LL") { xw = xw-2; yw = yw+1; } if(parent[xw][yw]=="L") { xw = xw; yw = yw+2; } } System.out.println(ans.size()); for(int i=ans.size()-1;i>=0;i--) { System.out.print(ans.get(i)+" "); } } } public void bfs() throws Exception { pairvalues k = a.remove(); r1 = k.x ; r2 = k.y; if (((r1-2 >= 0)&& (r1-2 <= n-1)) && ((r2-1 >=0) &&(r2-1 <=n-1))) //UL { if(visited[r1-2][r2-1]==0) { parent[r1-2][r2-1]="UL" ; visited[r1-2][r2-1]=1; if((r1-2==gxi)&&(r2-1==gyi)) { ty = true; } pairvalues f1 = new pairvalues(); f1.x=r1-2;f1.y=r2-1; a.add(f1); } } if (((r1-2 >= 0)&& (r1-2 <= n-1)) && ((r2+1 >=0) &&(r2+1 <=n-1))) //UR { if(visited[r1-2][r2+1]==0) { parent[r1-2][r2+1]="UR" ; visited[r1-2][r2+1]=1; if((r1-2==gxi)&&(r2+1==gyi)) { ty = true; } pairvalues f2 = new pairvalues(); f2.x=r1-2;f2.y=r2+1; a.add(f2); } } if (((r1 >= 0)&& (r1 <= n-1)) && ((r2+2 >=0) &&(r2+2 <=n-1))) //R { if(visited[r1][r2+2]==0) { parent[r1][r2+2]="R" ; visited[r1][r2+2]=1; if((r1==gxi)&&(r2+2==gyi)) { ty = true; } pairvalues f3 = new pairvalues(); f3.x=r1;f3.y=r2+2; a.add(f3); } } if (((r1+2 >= 0)&& (r1+2 <= n-1)) && ((r2+1 >=0) &&(r2+1 <=n-1))) //LR { if(visited[r1+2][r2+1]==0) { parent[r1+2][r2+1]="LR" ; visited[r1+2][r2+1]=1; if((r1+2==gxi)&&(r2+1==gyi)) { ty = true; } pairvalues f4 = new pairvalues(); f4.x=r1+2;f4.y=r2+1; a.add(f4); } } if (((r1+2 >= 0)&& (r1+2 <= n-1)) && ((r2-1 >=0) &&(r2-1 <=n-1))) //LL { if(visited[r1+2][r2-1]==0) { parent[r1+2][r2-1]="LL" ; visited[r1+2][r2-1]=1; if((r1+2==gxi)&&(r2-1==gyi)) { ty = true; } pairvalues f5 = new pairvalues(); f5.x=r1+2;f5.y=r2-1; a.add(f5); } } if (((r1 >= 0)&& (r1 <= n-1)) && ((r2-2 >=0) &&(r2-2 <=n-1))) //L { if(visited[r1][r2-2]==0) { parent[r1][r2-2]="L" ; visited[r1][r2-2]=1; if((r1==gxi)&&(r2-2==gyi)) { ty = true; } pairvalues f6 = new pairvalues(); f6.x=r1;f6.y=r2-2; a.add(f6); } } } }