#include #include #include using namespace std; inline int abs(int a) { return a < 0 ? -a : a; } int main() { int N, startI, startJ, endI, endJ; cin >> N; scanf("%d %d %d %d", &startI, &startJ, &endI, &endJ); string rowDir = "", colDir = "", colDirOp = ""; if (endI - startI > 0) rowDir = "L"; else if (endI - startI < 0) rowDir = "U"; if (endJ - startJ > 0) colDir = "R", colDirOp = "L"; else if (endJ - startJ < 0) colDir = "L", colDirOp = "R"; bool isAble = true; int crossFirst=0, crossSecond=0, directCnt=0; if (abs(endI - startI) % 2 == 0) { int rowCnt = abs(endI - startI) / 2; int colCnt = abs(endJ - startJ); if (abs(rowCnt - colCnt) % 2 == 0) { if (colCnt > rowCnt) { if ((colCnt - rowCnt) % 2 == 0) { directCnt = (colCnt - rowCnt) / 2; crossFirst = rowCnt; } else { isAble = false; } } else { crossFirst = rowCnt - (rowCnt - colCnt) / 2; crossSecond = (rowCnt - colCnt) / 2; } } else { isAble = false; } } else { isAble = false; } if (!isAble) cout << "Impossible" << '\n'; else { cout << crossFirst + crossSecond + directCnt << '\n'; if (rowDir == "L") { if (colDir == "R") { for (int i = 0; i < directCnt; i++) cout << colDir << " "; for (int i = 0; i < crossFirst; i++) cout << rowDir << colDir << " "; for (int i = 0; i < crossSecond; i++) cout << rowDir << colDirOp << " "; } else if (colDir == "L") { for (int i = 0; i < crossSecond; i++) cout << rowDir << colDirOp << " "; for (int i = 0; i < crossFirst; i++) cout << rowDir << colDir << " "; for (int i = 0; i < directCnt; i++) cout << colDir << " "; } else { for (int i = 0; i < crossFirst; i++) cout << "LR "; for (int i = 0; i < crossSecond; i++) cout << "LL "; } } else { if (colDir == "R") { for (int i = 0; i < crossSecond; i++) cout << rowDir << colDirOp << " "; for (int i = 0; i < crossFirst; i++) cout << rowDir << colDir << " "; for (int i = 0; i < directCnt; i++) cout << colDir << " "; } else if (colDir == "L") { for (int i = 0; i < crossFirst; i++) cout << rowDir << colDir << " "; for (int i = 0; i < crossSecond; i++) cout << rowDir << colDirOp << " "; for (int i = 0; i < directCnt; i++) cout << colDir << " "; } else { for (int i = 0; i < crossFirst; i++) cout << "UL "; for (int i = 0; i < crossSecond; i++) cout << "UR "; } } cout << '\n'; } }