#include int moddiff(int a,int b) { return (a>b)?(a-b):(b-a); }//ul ur r lr ll l void printShortestPath(int is,int js,int in,int jn,int n,int m,int a[]) { if((is==in)&&((js-jn)%2==0)) { if(js>jn) while(js!=jn){ js-=2;// printf("L "); a[++m]=5; } else while(js!=jn) { // printf("R "); js+=2;a[++m]=2; } } else if((is==in)&&((js-jn)%2!=0)) {printf("Impossible");} else if(js==jn) { if(moddiff(is,in)%4!=0) printf("Impossible"); else { int o[2]={+4,-4},p; if(is>in) { while(is!=in) { // printf("UL UR "); a[++m]=0; a[++m]=1; is-=4; } } else { while(is!=in) { // printf("LR LL "); a[++m]=3; a[++m]=4; is+=4; } } } } else{ int fi,fj,jsteps,isteps; fi=moddiff(is,in); jsteps=fi/2; fj=moddiff(jsteps,jn); if((fj%2==0)) { while(is!=in) { if((injs)) { is-=2; js+=1; // printf("UR "); a[++m]=1; } else{ if(jn>js) { js+=1; // printf("LR "); a[++m]=3; } else { js-=1; // printf("LL "); a[++m]=4; } is+=2; } } if(js!=jn) { if(js>jn) { a[++m]=5; js-=2; } else { a[++m]=2;//printf("R "); js+=2; } } } else { printf("Impossible"); } } if(m!=0){ printf("%d\n",m); for(is=1;is<=m;is++) { js=a[is]; if(js==0) printf("UL "); else if(js==1) printf("UR "); else if(js==2) printf("R "); else if(js==3) printf("LR "); else if(js==4) printf("LL "); else if(js==5) printf("L "); } } } int main() { int is,js,in,jn,n; scanf("%d",&n); int a[n*n]; scanf("%d %d %d %d",&is,&js,&in,&jn); printShortestPath(is,js,in,jn,n,0,a); }