import java.io.*; import java.util.*; import java.text.*; import java.math.*; import java.util.regex.*; public class Solution { public class values { int x; int y; } BufferedReader b = new BufferedReader(new InputStreamReader(System.in)); int [][] visited = new int[200][200]; String [][] parent = new String[200][200]; Queue c = new LinkedList(); List ans = new ArrayList(); public int no,xs,ys,dxs,dys,count=0,w1,w2,g1,g2;public boolean yu=false; public static void main(String[] args) throws Exception { Solution p = new Solution(); p.inpr(); } public void inpr() throws Exception { no = Integer.parseInt(b.readLine()); StringTokenizer br = new StringTokenizer(b.readLine()); xs = Integer.parseInt(br.nextToken());ys = Integer.parseInt(br.nextToken()); dxs = Integer.parseInt(br.nextToken()); dys = Integer.parseInt(br.nextToken()); visited[xs][ys]=1; parent[xs][ys] = "target" ; values v = new values(); v.x = xs; v.y = ys; c.add(v); while(c.isEmpty()==false) { if(yu==false) { bfs(); } else { break; } } if(yu==false) { System.out.println("Impossible"); } else { g1 = dxs; g2 = dys; while(parent[g1][g2]!="target") { ans.add(parent[g1][g2]); if(parent[g1][g2]=="UL") { g1 = g1+2; g2 = g2+1; } else if(parent[g1][g2]=="UR") { g1 = g1+2; g2 = g2-1; } else if(parent[g1][g2]=="R") { g1 = g1; g2 = g2 - 2 ; } else if(parent[g1][g2]=="LR") { g1 = g1-2; g2 = g2 - 1; } else if(parent[g1][g2]=="LL") { g1 = g1-2; g2 = g2 + 1; } else if(parent[g1][g2]=="L") { g1 = g1; g2 = g2 + 2; } else { System.out.print("f"); } } 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 { values v1 = c.remove(); w1 = v1.x; w2 = v1.y; if (((w1-2>=0)&&(w1-2<=no-1)) && ((w2-1>=0)&&(w2-1<=no-1))) //UL { if(visited[w1-2][w2-1]==0) { visited[w1-2][w2-1]=1; parent[w1-2][w2-1]="UL"; if ((w1-2 == dxs)&&(w2-1 == dys)) { yu = true; } values p1 = new values(); p1.x = w1-2 ; p1.y = w2-1; c.add(p1); } } if (((w1-2>=0)&&(w1-2<=no-1)) && ((w2+1>=0)&&(w2+1<=no-1))) //UR { if(visited[w1-2][w2+1]==0) { visited[w1-2][w2+1]=1; parent[w1-2][w2+1]="UR"; if ((w1-2 == dxs)&&(w2+1 == dys)) { yu = true; } values p2 = new values(); p2.x = w1-2 ; p2.y = w2+1; c.add(p2); } } if (((w1>=0)&&(w1<=no-1)) && ((w2+2>=0)&&(w2+2<=no-1))) //R { if(visited[w1][w2+2]==0) { visited[w1][w2+2]=1; parent[w1][w2+2]="R"; if ((w1 == dxs)&&(w2+2 == dys)) { yu = true; } values p3 = new values(); p3.x = w1; p3.y = w2+2; c.add(p3); } } if (((w1+2>=0)&&(w1+2<=no-1)) && ((w2+1>=0)&&(w2+1<=no-1))) //LR { if(visited[w1+2][w2+1]==0) { visited[w1+2][w2+1]=1; parent[w1+2][w2+1]="LR"; if ((w1+2 == dxs)&&(w2+1 == dys)) { yu = true; } values p4 = new values(); p4.x = w1+2; p4.y = w2+1; c.add(p4); } } if (((w1+2>=0)&&(w1+2<=no-1)) && ((w2-1>=0)&&(w2-1<=no-1))) //LL { if(visited[w1+2][w2-1]==0) { visited[w1+2][w2-1]=1; parent[w1+2][w2-1]="LL"; if ((w1+2 == dxs)&&(w2-1 == dys)) { yu = true; } values p5 = new values(); p5.x = w1+2; p5.y = w2-1; c.add(p5); } } if (((w1>=0)&&(w1<=no-1)) && ((w2-2>=0)&&(w2-2<=no-1))) //L { if(visited[w1][w2-2]==0) { visited[w1][w2-2]=1; parent[w1][w2-2]="L"; if ((w1 == dxs)&&(w2-2 == dys)) { yu = true; } values p6 = new values(); p6.x = w1; p6.y = w2-2; c.add(p6); } } } }