#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define oo 1e9 #define tr(c, it) for(typeof((c).begin()) it = (c).begin(); it != (c).end(); it++) #define fi first #define se second #define pb push_back #define ll long long #define all(c) c.begin(), c.end() #define PRE(i, m, n) for(int (i)=(m);(i)<(n);++(i)) #define present(container, element) (container.find(element) != container.end()) #define cpresent(container, element) (find(all(container), element) != container.end()) #define FOR(i,n) for(int (i)=0;(i)<(n);++(i)) using namespace std; typedef pair II; typedef vector VI; typedef vector VII; typedef vector VVI; typedef vector VVII; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; VI res; int step = 0; int i_s, j_s, i_e, j_e; cin >> i_s >> j_s >> i_e >> j_e; if((abs(i_s - i_e) % 2 == 1) || (abs(i_s - i_e)%4 == 2 && abs(j_s - j_e) % 2 != 1) || (abs(i_s - i_e)%4 == 0 && abs(j_s - j_e) % 2 != 0)) { cout << "Impossible" << endl; } else { while(i_s != i_e || j_s != j_e) { if(i_e == i_s) { if(j_s > j_e) { for(int i = j_s; i > j_e; i-= 2) { j_s -= 2; res.pb(6); step++; } } else if(j_s < j_e){ for(int i = j_s; i < j_e; i += 2) { j_s += 2; res.pb(3); step++; } } } else if(i_s < i_e) { if(j_s > j_e || (j_s == j_e && j_s == n - 1)) { j_s -= 1; i_s += 2; res.pb(5); step++; } else if(j_s <= j_e) { j_s += 1; i_s += 2; res.pb(4); step++; } } else if(i_s > i_e) { if(j_s < j_e || (j_s == j_e && j_s == 0)) { j_s += 1; i_s -= 2; res.pb(2); step++; } else if(j_s >= j_e) { j_s -= 1; i_s -= 2; res.pb(1); step++; } } } } if(step > 0) cout << step << endl; sort(all(res)); FOR(i, res.size()) { if(res[i] == 1) cout << "UL "; else if(res[i] == 2) cout << "UR "; else if(res[i] == 3) cout << "R "; else if(res[i] == 4) cout << "LR "; else if(res[i] == 5) cout << "LL "; else cout << "L "; } return 0; }