def to_xy(num): dx = (1, 0, -1, 0) dy = (0, 1, 0, -1) k, p, d = 0, 1, 1 x, y = 0, 0 while p < num: for i in range(2): s = min(d, num - p) p += s x += s * dx[k + i] y += s * dy[k + i] k ^= 2 d += 1 return x, y def to_num(x, y): k = max(abs(x), abs(y)) s = k * 2 + 1 if y == -k: return s * s - (s - 1) * 0 - (k - x) elif x == -k: return s * s - (s - 1) * 1 - (k + y) elif y == k: return s * s - (s - 1) * 2 - (k + x) else: return s * s - (s - 1) * 3 - (k - y) def get_move(frm, to): x, y = frm tx, ty = to command = [] while (x, y) != (tx, ty): if x + 1 <= tx: command.append('RLR') x += 1 elif x - 1 >= tx: command.append('LRL') x -= 1 elif y + 1 <= ty: command.append('UDU') y += 1 elif y - 1 >= ty: command.append('DUD') y -= 1 else: assert(False) if x + 1 <= tx: command.append('R') x += 1 elif x - 1 >= tx: command.append('L') x -= 1 elif y + 1 <= ty: command.append('U') y += 1 elif y - 1 >= ty: command.append('D') y -= 1 else: assert((x, y) == (tx, ty)) return command def solve(s, t): if s % 2 != t % 2: return ''.join(get_move(to_xy(s), to_xy(t))) else: ans = [] if s % 2 == 1: ans += get_move(to_xy(s), to_xy(4)) ans.append('DRUL') ans += get_move(to_xy(4), to_xy(t)) else: ans += get_move(to_xy(s), to_xy(1)) ans.append('RULDUD') ans += get_move(to_xy(1), to_xy(t)) return ''.join(ans) s, t = map(int, input().split()) ans = solve(s, t) print(0, len(ans), ans, sep='\n')