#include using namespace std; struct cell { int x, y; int dis,k,px,py; cell() {} cell(int x, int y, int dis,int k,int px,int py) : x(x), y(y), dis(dis),k(k),px(px),py(py) {} }; vectorv,v1; vectorv2; bool check(int x, int y, int n) { if (x >= 0 && x < n && y >=0 && y < n) return true; return false; } int ans(int in[], int fi[],int n) { int dx[] = {-2,-2,2,2,0,0}; int dy[] = {-1,1,1,-1,2,-2}; queue q; q.push(cell(in[0], in[1], 0,-1,0,0)); cell t; int x, y; bool visit[n ][n ]; for (int i = 0; i < n ;i++) for (int j = 0; j < n; j++) visit[i][j] = false; visit[in[0]][in[1]] = true; while (!q.empty()) { t = q.front(); v.push_back(t); q.pop(); visit[t.x][t.y] = true; if (t.x == fi[0] && t.y == fi[1]) { v1.push_back(t); v2.push_back(t.k); return t.dis; } for (int i = 0; i < 6; i++) { x = t.x + dx[i]; y = t.y + dy[i]; if (check(x, y, n) && !visit[x][y]) q.push(cell(x, y, t.dis + 1,i,t.x,t.y)); } } return 0; } int main() { int n,a,b,c,d,p,p2,answ; cell t; cin>>n; cin>>a>>b>>c>>d; int in[] = {a , b}; int fi[] = {c, d}; answ= ans(in, fi, n); string s[6]; s[0]="UL"; s[1]="UR"; s[2]="LR"; s[3]="LL"; s[4]="R"; s[5]="L"; if(v1.size()==0) cout<<"Impossible"; else { cout<=0;i--) { if(v[i].x==t.px&&v[i].y==t.py) { v2.push_back(v[i].k); t=v[i]; if(v[i].dis==1) break; } } for(int i=v2.size()-1;i>=0;i--) cout<