#include using namespace std; //UL, UR, R, LR, LL, L. void printShortestPath(int n, int istart, int jstart, int iend, int jend) { vector> v(n,vector(n,0)); v[istart][jstart]=1; vector>> d(n,vector>(n)); d[istart][jstart].first=0; queue> q; q.push(make_pair(istart,jstart)); int x,y; int f=0; while(!q.empty()){ pair p=q.front(); q.pop(); x=p.first; y=p.second; if(x-2>=0&&y-1>=0&&v[x-2][y-1]==0){ v[x-2][y-1]=1; q.push(make_pair(x-2,y-1)); d[x-2][y-1].first=d[x][y].first+1; d[x-2][y-1].second=1; if(x-2==iend&&y-1==jend){ break; } } if(x-2>=0&&y+1<=n-1&&v[x-2][y+1]==0){ v[x-2][y+1]=1; q.push(make_pair(x-2,y+1)); d[x-2][y+1].first=d[x][y].first+1; d[x-2][y+1].second=2; if(x-2==iend&&y+1==jend){ break; } } if(y+2<=n-1&&v[x][y+2]==0){ v[x][y+2]=1; q.push(make_pair(x,y+2)); d[x][y+2].first=d[x][y].first+1; d[x][y+2].second=3; if(x==iend&&y+2==jend){ break; } } if(x+2<=n-1&&y+1<=n-1&&v[x+2][y+1]==0){ v[x+2][y+1]=1; q.push(make_pair(x+2,y+1)); d[x+2][y+1].first=d[x][y].first+1; d[x+2][y+1].second=4; if(x+2==iend&&y+1==jend){ break; } } if(x+2<=n-1&&y-1>=0&&v[x+2][y-1]==0){ v[x+2][y-1]=1; q.push(make_pair(x+2,y-1)); d[x+2][y-1].first=d[x][y].first+1; d[x+2][y-1].second=5; if(x+2==iend&&y-1==jend){ break; } } if(y-2>=0&&v[x][y-2]==0){ v[x][y-2]=1; q.push(make_pair(x,y-2)); d[x][y-2].first=d[x][y].first+1; d[x][y-2].second=6; if(x==iend&&y-2==jend){ break; } } } if(v[iend][jend]==0){ cout<<"Impossible"; } else{ cout< vi(s); int a=iend,b=jend; for(int i=s-1;i>=0;i--){ if(d[a][b].second==1){ vi[i]="UL"; a=a+2; b=b+1; continue; } if(d[a][b].second==2){ vi[i]="UR"; a=a+2; b=b-1; continue; } if(d[a][b].second==3){ vi[i]="R"; b=b-2; continue; } if(d[a][b].second==4){ vi[i]="LR"; a=a-2; b=b-1; continue; } if(d[a][b].second==5){ vi[i]="LL"; a=a-2; b=b+1; continue; } if(d[a][b].second==6){ vi[i]="L"; b=b+2; continue; } } for(int i=0;i> 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; }