#include using namespace std; void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { // Print the distance along with the sequence of moves. int a=abs(i_start-i_end); int b=abs(j_start-j_end); int x=a/2; int c=abs(b-x); int t=0; string ans=""; if(a%2==1){ cout<<"Impossible"; } else{ if(c%2==1) cout<<"Impossible"; else if(a%4==2 && b==0) cout<<"Impossible"; else if(i_start>=i_end && j_start>=j_end){ if(b>0){ for(int i=1;i<=x;i++){ ans=ans+"UL "; t++;} for(int i=1;i<=c;i=i+2){ ans=ans+"L "; t++;} } else{ if(j_start=0){ for(int i=1;i<=x;i++){ if(i%2==1) ans=ans+"UR "; else ans=ans+"UL "; t++;} } else{ for(int i=1;i<=(x/2);i++){ ans=ans+"UL "; t++;} for(int i=1;i<=(x/2);i++){ ans=ans+"UR "; t++;}} } } else if(i_start<=i_end && j_start<=j_end){ if(b>0){ for(int i=1;i<=x;i++){ ans=ans+"LR "; t++;} for(int i=1;i<=c;i=i+2){ ans=ans+"R "; t++;} } else{ if(j_end==(n-1)){ for(int i=1;i<=x;i++){ if(i%2==1) ans=ans+"LL "; else ans=ans+"LR "; t++; } } else{ for(int i=1;i<=(x/2);i++){ ans=ans+"LR "; t++;} for(int i=1;i<=(x/2);i++){ ans=ans+"LL "; t++;} } } } else if(i_start<=i_end && j_start>=j_end){ if(b>0){ for(int i=1;i<=x;i++){ ans=ans+"LL "; t++;} for(int i=1;i<=c;i=i+2){ ans=ans+"L "; t++;} } else{ if(j_end==(n-1)){ for(int i=1;i<=x;i++){ if(i%2==1) ans=ans+"LL "; else ans=ans+"LR "; t++; } } else{ for(int i=1;i<=(x/2);i++){ ans=ans+"LR "; t++;} for(int i=1;i<=(x/2);i++){ ans=ans+"LL "; t++;}} } } else{ if(b>0){ for(int i=1;i<=x;i++){ ans=ans+"UR "; t++;} for(int i=1;i<=c;i=i+2){ ans=ans+"R "; t++;} } else{ if(j_end==0){ for(int i=1;i<=x;i++){ if(i%2==1) ans=ans+"UR "; else ans=ans+"UL "; t++; } } else{ for(int i=1;i<=(x/2);i++){ ans=ans+"UL "; t++;} for(int i=1;i<=(x/2);i++){ ans=ans+"UR "; t++;}} } } cout<> n; int i_start; int j_start; int i_end; int j_end; cin >> i_start >> j_start >> i_end >> j_end; printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }