#include using namespace std; const int maxN = 205; int N, dist[maxN][maxN], moves[6][2] = {{-1, -2},{1, -2},{2, 0},{1,2},{-1,2},{-2,0}}; pair> prv[maxN][maxN]; string names[6] = {"UL", "UR", "R", "LR", "LL", "L"}; int sx, sy, ex, ey; int main(){ cin >> N; cin >> sy >> sx >> ey >> ex; for(int i=0; i> q; q.push({sx, sy}); dist[sx][sy] = 0; while(!q.empty()){ pair p = q.front(); q.pop(); int x = p.first; int y = p.second; if(x==ex && y==ey) break; for(int i=0; i<6; ++i){ int dx = x+moves[i][0]; int dy = y+moves[i][1]; if(dx>=0 && dx=0 && dydist[x][y]+1){ prv[dx][dy] = {names[i], {x, y}}; dist[dx][dy] = dist[x][y] + 1; q.push({dx, dy}); } } } } if(dist[ex][ey]==1e9){ printf("Impossible"); return 0; } printf("%d\n", dist[ex][ey]); vector path; while(ex!=sx || ey!=sy){ path.push_back(prv[ex][ey].first); pair p = prv[ex][ey].second; ex = p.first; ey = p.second; } for(int i=path.size()-1; i>=0; --i) cout << path[i] << " "; return 0; }