#include using namespace std; void printShortestPath(int n, int i_start, int j_start, int i_end, int j_end) { vector ss; int count = 0; bool status = true; while (true and (i_start != i_end or j_start != j_end)) { if (i_start-2 >= i_end and j_start-1 >= j_end) { ss.push_back("UL"); count++; i_start -= 2; j_start -= 1; } else if (i_start-2 >= i_end and j_start+1 <= j_end) { ss.push_back("UR"); count++; i_start -= 2; j_start += 1; } else if (j_start+2 <= j_end) { ss.push_back("R"); count++; j_start += 2; } else if (i_start+2 <= i_end and j_start+1 <= j_end) { ss.push_back("LR"); count++; i_start += 2; j_start += 1; } else if (i_start+2 <= i_end and j_start-1 >= j_end) { ss.push_back("LL"); count++; i_start += 2; j_start -= 1; } else if (j_start-2 >= j_end) { ss.push_back("L"); count++; j_start -= 2; } else if (i_start-4 >= i_end) { if (j_start-1>=0) { ss.push_back("UL"); j_start -= 1; } else { ss.push_back("UR"); j_start += 1; } count++; i_start -= 2; } else if (i_start+4 <= i_end) { if (j_start+1 <= n-1) { ss.push_back("LR"); j_start += 1; } else { ss.push_back("LL"); j_start -= 1; } count++; i_start += 2; } else { status = false; break; } } if (status) { cout << count << endl; for (auto x : ss) { cout << x << ' '; } cout << endl; } else { cout << "Impossible" << endl; } } int main() { int n; cin >> n; int i_start; int j_start; int i_end; int j_end; cin >> i_start >> j_start >> i_end >> j_end; printShortestPath(n, i_start, j_start, i_end, j_end); return 0; }