def pos(a): r = int(a**0.5) if r%2==0: r -= 1 x,y = r//2,-(r//2) if r*r == a: return x,y a -= r*r+1 x += 1 if a <= r: return x,y+a a -= r y += r if a <= r+1: return x-a,y a -= r+1 x -= r+1 if a <= r+1: return x,y-a a -= r+1 y -= r+1 if a <= r+1: return x+a,y def num(x,y): v = max(abs(x),abs(y)) a = (2*v+1)*(2*v+1) if x==v and y==-v: return a if y==-v: return a-(v-x) a -= 2*v if x==-v: return a-(y+v) a -= 2*v if y==v: return a-(x+v) a -= 2*v return a-(v-y) def check(s,t,res): sx,sy = pos(s) for i in res: dx,dy = [(-1,0),(1,0),(0,1),(0,-1)]["LRUD".index(i)] sx += dx sy += dy s ^= num(sx,sy) assert num(sx,sy) == t assert s==0 return def go(dx,dy): #print(dx,dy,(dx+dy)%2,"dx,dy") #assert (dx+dy)%2 == 1 res = [] while 1: if dx > 0: res += ["R","L","R"] dx -= 1 elif dx < 0: res += ["L","R","L"] dx += 1 elif dy > 0: res += ["U","D","U"] dy -= 1 elif dy < 0: res += ["D","U","D"] dy += 1 if dx==0 and dy==0: break if dx > 0: res += ["R"] dx -= 1 elif dx < 0: res += ["L"] dx += 1 elif dy > 0: res += ["U"] dy -= 1 elif dy < 0: res += ["D"] dy += 1 return res s,t = map(int,input().split()) sx,sy = pos(s) tx,ty = pos(t) if (sx+sy+tx+ty)%2: res = go(tx-sx,ty-sy) else: if (sx+sy)%2 == 0: res = go(1-sx,-sy) #今2 res += ["L","R","U","D"]#今2 res += go(tx-1,ty) else: res = go(-sx,-sy) #今1 res += ["R","U","D","L","R","L"]#今1 res += go(tx,ty) print(0) print(len(res)) print("".join(res))