/** * author: tourist * created: 14.12.2017 19:14:29 **/ #include using namespace std; int n; int build(int xa, int ya, int xb, int yb) { if (xa < 0 || ya < 0 || xa >= n || ya >= n) { return 42424242; } vector res; while (xa != xb) { if (xa > xb) { if (ya > yb) { res.push_back("UL"); ya--; } else { res.push_back("UR"); ya++; } xa -= 2; } else { if (ya > yb) { res.push_back("LL"); ya--; } else { res.push_back("LR"); ya++; } xa += 2; } } while (ya > yb) { res.push_back("L"); ya -= 2; } while (ya < yb) { res.push_back("R"); ya += 2; } assert(xa == xb && ya == yb); int sz = (int) res.size(); return sz; } int main() { scanf("%d", &n); int xa, ya, xb, yb; scanf("%d %d %d %d", &xa, &ya, &xb, &yb); if (xa % 2 != xb % 2 || (ya + abs(xa - xb) / 2) % 2 != yb % 2) { cout << "Impossible" << endl; return 0; } vector res; while (xa != xb || ya != yb) { int cur = build(xa, ya, xb, yb); if (build(xa - 2, ya - 1, xb, yb) + 1 == cur) { res.push_back("UL"); xa -= 2; ya -= 1; continue; } if (build(xa - 2, ya + 1, xb, yb) + 1 == cur) { res.push_back("UR"); xa -= 2; ya += 1; continue; } if (build(xa, ya + 2, xb, yb) + 1 == cur) { res.push_back("R"); ya += 2; continue; } if (build(xa + 2, ya + 1, xb, yb) + 1 == cur) { res.push_back("LR"); xa += 2; ya += 1; continue; } if (build(xa + 2, ya - 1, xb, yb) + 1 == cur) { res.push_back("LL"); xa += 2; ya -= 1; continue; } if (build(xa, ya - 2, xb, yb) + 1 == cur) { res.push_back("L"); ya -= 2; continue; } assert(false); } assert(xa == xb && ya == yb); int sz = (int) res.size(); printf("%d\n", sz); for (int i = 0; i < sz; i++) { if (i > 0) { printf(" "); } printf("%s", res[i].c_str()); } printf("\n"); return 0; }