#include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define ll long long #define pb push_back #define pt pair #define mp make_pair #define vector2 vector > #define istr pair bool valid(int x,int y, int n){ return (x >= 0 && x < n && y >= 0 && y < n); } bool visited[205][205]; istr f(int n,int x1,int y1,int x2, int y2){ queue > q; q.push(mp(mp(x1,y1),mp(0,""))); visited[x1][y1] = true; while(!q.empty()){ pair t = q.front(); q.pop(); //cout << "(" << t.first.first << "," << t.first.second << ")" << t.second.first << t.second.second << endl; if(t.first.first == x2 && t.first.second == y2){ return t.second; } else{ int xa = t.first.first; int ya = t.first.second; istr ma = t.second; visited[xa][ya] = true; if(valid(xa-1,ya-2,n) && !visited[xa-1][ya-2]) {visited[xa-1][ya-2] = true; q.push(mp(mp(xa-1,ya-2),mp(ma.first+1,ma.second + " UL")));} if(valid(xa+1,ya-2,n) && !visited[xa+1][ya-2]) {visited[xa+1][ya-2] = true; q.push(mp(mp(xa+1,ya-2),mp(ma.first+1,ma.second + " UR")));} if(valid(xa+2,ya,n) && !visited[xa+2][ya]) {visited[xa+2][ya] = true; q.push(mp(mp(xa+2,ya),mp(ma.first+1,ma.second + " R")));} if(valid(xa+1,ya+2,n) && !visited[xa+1][ya+2]) {visited[xa+1][ya+2] = true; q.push(mp(mp(xa+1,ya+2),mp(ma.first+1,ma.second + " LR")));} if(valid(xa-1,ya+2,n) && !visited[xa-1][ya+2]) {visited[xa-1][ya+2] = true; q.push(mp(mp(xa-1,ya+2),mp(ma.first+1,ma.second + " LL")));} if(valid(xa-2,ya,n) && !visited[xa-2][ya]) {visited[xa-2][ya] = true; q.push(mp(mp(xa-2,ya),mp(ma.first+1,ma.second + " L")));} } } return mp(-1," Impossible"); } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; int x1,y1,x2,y2; cin >> x1 >> y1 >> x2 >> y2; for(int i = 0 ; i < n ; i++){ for(int j = 0 ; j < n ; j++){ visited[i][j] = false; } } istr ans = f(n,y1,x1,y2,x2); if( ans.first != -1) cout << ans.first << endl; cout << ans.second.substr(1) << endl; }