#include #include #include #include #include using namespace std; int main () { int n; scanf("%d",&n); int x0,y0,x1,y1; scanf("%d %d %d %d", &x0, &y0, &x1, &y1); int mat [n][n]; vector mov; /* UL = 0 UR = 1 R = 2 LR = 3 LL = 4 L = 5 */ bool sw = true; int valAbs= fabs(x0-x1); if(valAbs%2 ==0){ while(x0 > x1){ if(y0 < y1){ mov.push_back(1); x0=x0-2; y0=y0+1; } else if (y0 > y1){ mov.push_back(0); x0=x0-2; y0=y0-1; } else { x0=x0-4; if(y0 == n-1){ mov.push_back(0); mov.push_back(1); } else{ mov.push_back(1); mov.push_back(0); } } } while(x0 < x1){ if( y0 < y1){ if((y1 - y0)%2==1 && (y1 - y0)!= 1){ y0=y0+2; mov.push_back(2); } else{ mov.push_back(3); x0=x0+2; y0=y0+1; } } else if (y0 > y1){ mov.push_back(4); x0=x0+2; y0=y0-1; } else{ x0 = x0 + 4; if(y0 == n-1){ mov.push_back(4); mov.push_back(3); } else{ mov.push_back(3); mov.push_back(4); } } } while(x0 == x1){ if(y0 == y1){ sw= true; break; } else{ if(y0 < y1){ mov.push_back(2); y0=y0+2; } else { mov.push_back(5); y0=y0-2; } } if(fabs(y0-y1)==1){ sw=false; printf("Impossible"); break; } } } else{ printf("Impossible"); sw=false; } if(sw){ int tam = mov.size(); printf("%d\n",tam); sort(mov.begin(),mov.end()); for(int i = 0; i < tam-1; i++){ if(mov[i]== 0){ printf("UL "); } else if (mov[i]==1){ printf("UR "); } else if (mov[i]==2){ printf("R "); } else if (mov[i]==3){ printf("LR "); } else if (mov[i]==4){ printf("LL "); } else if( mov[i]==5){ printf("L "); } } if(mov[tam-1]== 0){ printf("UL"); } else if (mov[tam-1]==1){ printf("UR"); } else if (mov[tam-1]==2){ printf("R"); } else if (mov[tam-1]==3){ printf("LR"); } else if (mov[tam-1]==4){ printf("LL"); } else if( mov[tam-1]==5){ printf("L"); } } return 0; }