#include #include #include #include #include #include #include char s[10000][2]; int i=0; void printpath(int n,int i1,int j1,int i2,int j2){ if(i1j2){ s[++i][0]='L'; s[i][1]='L'; printpath(n,i1+2,j1-1,i2,j2); return; } if(j1==j2){ if(i1i2){ if(j1j2){ s[++i][0]='U'; s[i][1]='L'; printpath(n,i1-2,j1-1,i2,j2); return; } if(j1==j2){ if(i1j2){ s[++i][0]='L'; s[i][1]=' '; printpath(n,i1,j1-2,i2,j2); return; } } return; } void printShortestPath(int n, int i1, int j1, int i2, int j2) { int ir=i1-i2; if(ir<0) ir=ir-2*ir; int jr=j1-j2; if(jr<0) jr=jr-2*jr; if(ir%2==1||(jr%2==0&&j1!=j2)) { printf("Impossible"); return; } printpath(n,i1,j1,i2,j2); printf("%d\n",i); for(int j=1;j<=i;j++){ for(int k=0;k<2&&s[j][k]!=' ';k++) printf("%c",s[j][k]); printf(" "); } // Print the distance along with the sequence of moves. } int main() { int n; scanf("%i", &n); int i_start; int j_start; int i_end; int j_end; scanf("%i %i %i %i", &i_start, &j_start, &i_end, &j_end); printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }