#include #include #include // #include #define gc getchar//_unlocked #define pc putchar//_unlocked #define ll long long #define ld long double #define pb push_back #define mp make_pair #define pp pair #define ppl pair #define bigint boost::multiprecision::cpp_int #define finp ios_base::sync_with_stdio(0);cin.tie(0); #define bc __builtin_popcountll #define afor(i,a,b) for(int i=a;i<=b;++i) #define bfor(i,a,b) for(int i=a;i>=b;--i) #define vi vector #define vpp vector #define vll vector using namespace std; using namespace __gnu_pbds; char putnb[20]; void putn(ll n) {if(!n)pc('0');if(n<0)pc('-'),n=0-n;int pi=0;while(n)putnb[pi++]=(n%10)+'0',n/=10;while(pi)pc(putnb[--pi]);} void sci(int *x) {register char c = gc();*x = 0;for(; (c<48)||(c>57);c = gc());for(; (c>47)&&(c<58);c = gc())*x = (int)((((*x)<<1) + ((*x)<<3)) + c - 48);} void scll(ll *x) {register char c = gc();*x = 0;for(; (c<48)||(c>57);c = gc());for(; (c>47)&&(c<58);c = gc())*x = (ll)((((*x)<<1) + ((*x)<<3)) + c - 48);} ll fp(ll a,ll b,ll c) {if(b==0)return 1%c; if(b==1)return a%c; ll ret=fp(a,b/2,c); ret=(ret*ret)%c; if(b&1)ret=(ret*a)%c; return ret;} const ll mod=1e9 +7; const ll mod2=1999999973; const ll inf=1e18; const int infs=1e9 + 1000; const int N=100000; const long double PI = acos(-1); template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>; int n; int dir[6][2] = {{-2,-1},{0,-2},{2,-1},{-2,1},{0,2},{2,1}}; string dirname[6] = {"UL","L","LL","UR","R","LR"}; //UL, UR, R, LR, LL, L int pri[6] = {0,3,4,5,2,1}; pp par[205][205]; string par2[205][205]; int main() { int i1,j1,i2,j2; finp; cin>>n; cin>>i1>>j1>>i2>>j2; ++i1;++j1;++i2;++j2; afor(i,1,n)afor(j,1,n)par[i][j] = {-1,-1}; queue q; q.push({i1,j1}); while(q.size()) { pp xx = q.front(); q.pop(); int x = xx.first; int y = xx.second; afor(ii,0,5) { int i = pri[ii]; int nx = x + dir[i][0]; int ny = y + dir[i][1]; if(nx>=1 && nx<=n && ny>=1 && ny<=n) { if(par[nx][ny] == mp(-1,-1)) { par[nx][ny] = xx; par2[nx][ny] = dirname[i]; q.push({nx,ny}); } } } } if(par[i2][j2] == mp(-1,-1)) { cout<<"Impossible"; return 0; } stack ans; int cx = i2; int cy = j2; while(1) { ans.push(par2[cx][cy]); pp xx = par[cx][cy]; cx = xx.first; cy = xx.second; if(cx==i1 && cy==j1)break; } cout<