#include #define rep(i,a,b) for(int i=a;i=b;i--) #define fore(i,a) for(auto &i:a) #pragma GCC optimize ("-O3") using namespace std; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); _main(); } //--------------------------------------------------------------------------------------------------- //UL, UR, R, LR, LL, L. string str[6] = { "UL", "UR", "R", "LR", "LL", "L" }; int dx[6] = { -1, 1, 2, 1, -1, -2 }; int dy[6] = { -2, -2, 0, 2, 2, 0 }; int N, sx, sy, tx, ty; //--------------------------------------------------------------------------------------------------- vector ans; int f(int x, int y) { if (x == tx and y == ty) return 0; if ((y - ty) % 2 != 0) return -1; if (y == ty and (x == tx - 1 or x == tx + 1)) return -1; int mi = 10101010; int mii = -1; rep(i, 0, 6) { int xx = x + dx[i]; int yy = y + dy[i]; int d = abs(xx - tx) + abs(yy - ty); if (d < mi) mi = d, mii = i; } assert(0 <= mii); int xx = x + dx[mii]; int yy = y + dy[mii]; ans.push_back(str[mii]); return f(xx, yy); } //--------------------------------------------------------------------------------------------------- void _main() { cin >> N >> sy >> sx >> ty >> tx; if (f(sx, sy) < 0) { printf("Impossible\n"); return; } int n = ans.size(); printf("%d\n", n); rep(i, 0, n) { if (i) printf(" "); printf("%s", ans[i].c_str()); } printf("\n"); }