#include using namespace std; typedef long long int ll; #define size 201 ll INF=100; bool vis[size][size]; ll dis[size][size]; ll n; ll par[size][size]; bool check(ll x,ll y) { if(x>=0 && y>=0 && x<=n && y<=n && !vis[x][y]) return 1; return 0; } void bfs(ll x,ll y) { vis[x][y]=1; deque< pair >q; q.push_back(make_pair(x,y)); dis[x][y]=0; while(!q.empty()) { ll u=q.front().first; ll v=q.front().second; q.pop_front(); if(check(u-2,v-1)) { dis[u-2][v-1]=min(dis[u-2][v-1],dis[u][v]+1); q.push_back(make_pair(u-2,v-1)); vis[u-2][v-1]=1; par[u-2][v-1]=0; } if(check(u-2,v+1)) { dis[u-2][v+1]=min(dis[u-2][v+1],dis[u][v]+1); q.push_back(make_pair(u-2,v+1)); vis[u-2][v+1]=1; par[u-2][v+1]=1; } if(check(u,v+2)) { dis[u][v+2]=min(dis[u][v+2],dis[u][v]+1); q.push_back(make_pair(u,v+2)); vis[u][v+2]=1; par[u][v+2]=2; } if(check(u+2,v+1)) { dis[u+2][v+1]=min(dis[u+2][v+1],dis[u][v]+1); q.push_back(make_pair(u+2,v+1)); vis[u+2][v+1]=1; par[u+2][v+1]=3; } if(check(u+2,v-1)) { dis[u+2][v-1]=min(dis[u+2][v-1],dis[u][v]+1); q.push_back(make_pair(u+2,v-1)); vis[u+2][v-1]=1; par[u+2][v-1]=4; } if(check(u,v-2)) { dis[u][v-2]=min(dis[u][v-2],dis[u][v]+1); q.push_back(make_pair(u,v-2)); vis[u][v-2]=1; par[u][v-2]=5; } } } void print(ll x,ll y,ll dx,ll dy) { ll i=dx; ll j=dy; stackS; while(1) { //cout << "yes\n"; if(i==x && j==y) break; if(par[i][j]==0) { i+=2; j++; S.push("UL"); } if(par[i][j]==1) { i+=2; j--; S.push("UR"); } if(par[i][j]==2) { j-=2; S.push("R"); } if(par[i][j]==3) { i-=2; j--; S.push("LR"); } if(par[i][j]==4) { i-=2; j++; S.push("LL"); } if(par[i][j]==5) { j+=2; S.push("L"); } } while(!S.empty()) { cout << S.top() << " "; S.pop(); } } int main() { ios::sync_with_stdio(false); ll i,j; cin >> n ; for(i=0;i> x >> y >> dx >> dy; dis[x][y]=0; bfs(x,y); ll ans=dis[dx][dy]; if(ans==INF) cout << "Impossible\n"; else { cout << ans << "\n"; print(x,y,dx,dy); cout << "\n"; } return 0; }