#include #include #include #include #include #include #include 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 len=j_start-j_end; int bre=i_start-i_end; int total; if(len==0) { if(bre<0) { if(((bre)%4)!=0) printf("Impossible"); else total=(-bre)/2; printf("%d\n",total); for(int i=0;i<(total/2);i++) printf("LR LL "); } else { if(((bre)%4)!=0) printf("Impossible"); else total=(bre)/2; printf("%d\n",total); for(int i=0;i<(total/2);i++) printf("UL UR "); } } else if(bre==0) { if(len<0) { if(((len)%2)!=0) printf("Impossible"); else total=(-len)/2; printf("%d\n",total); for(int i=0;i<(total);i++) printf("R "); } else { if((len%2)!=0) printf("Impossible"); else total=(len)/2; printf("%d\n",total); for(int i=0;i<(total);i++) printf("L "); } } else { if((bre%2)!=0) printf("Impossible"); else { int rem=len-(bre/2); int rem1; if(rem%2==0) { if((len<0)&&(bre<0)) { len=-len; bre=-bre; rem=(len-(bre/2))/2; rem1=bre/2; printf("%d\n",rem+rem1); while(rem1--) printf("LR "); while(rem--) printf("R "); } if((len<0)&&(bre>0)) { len=-len; bre=bre; rem=(len-(bre/2))/2; rem1=bre/2; printf("%d\n",rem+rem1); while(rem1--) printf("UR "); while(rem--) printf("R "); } if((len>0)&&(bre<0)) { len=len; bre=-bre; rem=(len-(bre/2))/2; rem1=bre/2; printf("%d\n",rem+rem1); while(rem1--) printf("LL "); while(rem--) printf("L "); } if((len>0)&&(bre>0)) { len=len; bre=bre; rem=(len-(bre/2))/2; rem1=bre/2; printf("%d\n",rem+rem1); while(rem1--) printf("UL "); while(rem--) printf("L "); } } } } } 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; }