#include using namespace std; typedef long long ll; int di[] = {-2,-2,0,2,2,0}; int dj[] = {-1,1,2,1,-1,-2}; string si[] = {"UL","UR","R","LR","LL","L"}; const int MAX = 205; bool vis[MAX][MAX]; pair from[MAX][MAX]; string fromS[MAX][MAX]; int n; int a,b,c,d; int solve() { queue> q; q.push({a,b}); vis[a][b] = 1; int steps = 0; while(q.size()) { int sz = q.size(); while(sz--) { int cura = q.front().first; int curb = q.front().second; q.pop(); if(cura== c && curb == d) return steps; for(int k=0;k<6;k++) { int ta = cura + di[k]; int tb = curb + dj[k]; if(ta<0 || tb<0 || ta>=n || tb>=n || vis[ta][tb]) continue; vis[ta][tb] = 1; from[ta][tb] = {cura,curb}; fromS[ta][tb] = si[k]; q.push({ta,tb}); } } steps++; } return -1; } int main() { ios::sync_with_stdio(0); cin.tie(0); cin>>n; cin>>a>>b>>c>>d; int steps = solve(); if(steps==-1) { cout<<"Impossible\n"; return 0; } int cura = c, curb = d; vector ans; while(cura!=a || curb!=b) { ans.push_back(fromS[cura][curb]); int tempa = from[cura][curb].first; int tempb = from[cura][curb].second; cura = tempa; curb = tempb; } cout<=0;i--) cout<