#include #include #include #include using namespace std; int n; int xs,ys,xe,ye; pair q[100111]; int qL=0; bool TFO[211][211]; int comefrom[100111]; string themv[100111]; void Try(int x,int y,string mv,int cmfm) { if (x<0 || y<0 || x>=n || y>=n) return; if (TFO[x][y]) return; qL++; q[qL]=make_pair(x,y); comefrom[qL]=cmfm; themv[qL]=mv; TFO[x][y]=true; return; } vector ans; int main() { int i; int uk=1; int x,y; int best=0; scanf("%d",&n); scanf("%d %d %d %d",&xs,&ys,&xe,&ye); qL=1; q[1]=make_pair(xs,ys); TFO[xs][ys]=true; while(uk<=qL) { x=q[uk].first; y=q[uk].second; if (make_pair(x,y)==make_pair(xe,ye)) { best=uk; break; } Try(x-2,y-1,"UL",uk); Try(x-2,y+1,"UR",uk); Try(x,y+2,"R",uk); Try(x+2,y+1,"LR",uk); Try(x+2,y-1,"LL",uk); Try(x,y-2,"L",uk); uk++; } if (best==0) { printf("Impossible\n"); } else { while(best!=1) { ans.push_back(themv[best]); best=comefrom[best]; } reverse(ans.begin(),ans.end()); printf("%d\n",(int)ans.size()); for (i=0;i