#include using namespace std; #include #include using namespace __gnu_pbds; /*template using ordered_set = tree, rb_tree_tag, tree_order_statistics_node_update>;*/ typedef long long ll; typedef long double ld; typedef pair pl; typedef pair pii; #define dbg(x) cerr << #x << " is " << x << " " #define gll(x) scanf("%lld",&x) #define gll2(x,y) scanf("%lld%lld",&x,&y) #define gll3(x,y,z) scanf("%lld%lld%lld",&x,&y,&y) #define gllarr(arr,n) f(i,n) gll(arr[i]); #define sz(x) ((int)x.size()) #define s(x) sort(x.begin(),x.end()) #define all(v) v.begin(),v.end() #define rs(v) { s(v) ; r(v) ; } #define r(v) {reverse(all(v));} #define pb push_back #define mp make_pair #define F first #define S second #define f(i,n) for(int i=0;i=0;i--) #define rep(i,a,b) for(int i=a;i<=b;i++) #define repr(i,a,b) for(int i=a;i>=b;i--) const ll mod = 1000000007; const ll inf = (ll)1e17; const ld eps = 1e-12; const ll N = 10000005; const ll LOGN = 19; const ld PI = 3.14159265358979323846; double tick(){static clock_t oldt;clock_t newt=clock();double diff=1.0*(newt-oldt)/CLOCKS_PER_SEC;oldt = newt;return diff;} ll mul(ll a, ll b, ll m = mod) { return (ll)(a * b) % m;} ll add(ll a, ll b, ll m = mod) { a += b; if(a >= m) a -= m; if(a < 0) a += m; return a;} ll power(ll a, ll b, ll m = mod) { if(b == 0) return 1; if(b == 1) return (a % m); ll x = power(a, b / 2, m); x = mul(x, x, m); if(b % 2) x = mul(x, a, m); return x;} //UL,UR,R,LR,LL,L int dy[6]={-1,1,2,1,-1,-2}; int dx[6]={-2,-2,0,2,2,0}; string st[6]={"UL","UR","R","LR","LL","L"}; struct node{ int x=0,y=0; int cx,cy; int val=0; }; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin>>n; node a[n][n]; f(i,n) { f(j,n) a[i][j].cx=i,a[i][j].cy=j; } int sx,sy,ex,ey; cin>>sx>>sy>>ex>>ey; queue Q; bool vis[n+15][n+15]; memset(vis,false,sizeof(vis)); Q.push(a[sx][sy]); a[sx][sy].val=0; vis[sx][sy]=true; while(!Q.empty()) { node p=Q.front(); if(p.cx==ex && p.cy==ey) break; Q.pop(); f(i,6) { int u=p.cx+dx[i]; int v=p.cy+dy[i]; //cout<=0 && u=0 && v S; while(1) { int dp=a[p][q].x,dq=a[p][q].y; f(i,6) { if(a[p][q].cx-dx[i]==dp && a[p][q].cy-dy[i]==dq) { S.push(st[i]); p=dp,q=dq; } } if(dp==sx && dq==sy) break; } while(!S.empty()) { string s=S.top(); S.pop(); cout<