#include using namespace std; typedef long long ll; const int siz = 1e5 + 10; const ll modu = 1e9 + 7; int main() { int n; scanf("%d", &n); int i1, j1, i2, j2; scanf("%d%d%d%d", &i1, &j1, &i2, &j2); if((i1 - i2) % 2) { printf("Impossible\n"); return 0; } int diff = i2 - i1; int diff1 = j2 - j1; int num = abs(diff) / 2; int r1 = abs(j1 - j2) % 2, r2 = num % 2; vector vec1, vec2; int arr[6]; memset(arr, 0, sizeof arr); if(r1 != r2) { printf("Impossible\n"); return 0; } if(diff < 0) { int diff2 = abs(diff1); int steps = min(num, diff2); if(diff1 < 0) { arr[0] += steps; if(num > diff2) arr[0] += (num - diff2) / 2, arr[1] += (num - diff2) / 2; else arr[5] += (diff2 - num) / 2; } else { arr[1] += steps; if(num > diff2) arr[0] += (num - diff2) / 2, arr[1] += (num - diff2) / 2; else arr[2] += (diff2 - num) / 2; } } else { int diff2 = abs(diff1); int steps = min(num, diff2); if(diff1 < 0) { arr[4] += steps; if(num > diff2) arr[4] += (num - diff2) / 2, arr[3] += (num - diff2) / 2; else arr[5] += (diff2 - num) / 2; } else { arr[3] += steps; if(num > diff2) arr[4] += (num - diff2) / 2, arr[3] += (num - diff2) / 2; else arr[2] += (diff2 - num) / 2; } } int ans = 0; for(int i = 0; i < 6; i++) ans += arr[i]; printf("%d\n", ans); for(int i = 0; i < 6; i++) { while(arr[i]--) { if(i == 0) printf("UL "); else if(i == 1) printf("UR "); else if(i == 2) printf("R "); else if(i == 3) printf("LR "); else if(i == 4) printf("LL "); else printf("L "); } } printf("\n"); return 0; }