The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, because he has business of national importance. For example, he has to pay an official visit to square *t*. As the king is not in habit of wasting his time, he wants to get from his current position *s* to square *t* in the least number of moves. Help him to do this.

In one move the king can get to the square that has a common side or a common vertex with the square the king is currently in (generally there are 8 different squares he can move to).
The first line contains the chessboard coordinates of square *s*, the second line — of square *t*.

Chessboard coordinates consist of two characters, the first one is a lowercase Latin letter (from a to h), the second one is a digit from 1 to 8.

def king_moves(start, end):
  # 将棋盘坐标转换为数字
  x1 = ord(start[0]) - ord('a')
  y1 = int(start[1]) - 1
  x2 = ord(end[0]) - ord('a')
  y2 = int(end[1]) - 1

  # 计算横向和纵向的距离
  dx = abs(x2 - x1)
  dy = abs(y2 - y1)

  # 国王的最短步数就是横向和纵向距离中的较大值
  return max(dx, dy)

# 定义一个函数，用来生成国王的移动步骤
def king_steps(start, end):
  # 将棋盘坐标转换为数字
  x1 = ord(start[0]) - ord('a')
  y1 = int(start[1]) - 1
  x2 = ord(end[0]) - ord('a')
  y2 = int(end[1]) - 1

  # 初始化一个空列表，用来存储移动步骤
  steps = []

  # 循环直到到达目标位置
  while (x1, y1) != (x2, y2):
    # 根据横向和纵向的相对位置，确定移动方向
    if x1 < x2:
      x_dir = 'R'
      x1 += 1
    elif x1 > x2:
      x_dir = 'L'
      x1 -= 1
    else:
      x_dir = ''

    if y1 < y2:
      y_dir = 'U'
      y1 += 1
    elif y1 > y2:
      y_dir = 'D'
      y1 -= 1
    else:
      y_dir = ''

    # 将移动方向添加到列表中
    steps.append(x_dir + y_dir)

  # 返回移动步骤列表
  return steps

# 输入起始位置和目标位置
start = input()
end = input()

# 调用函数，计算最短步数和移动步骤
moves = king_moves(start, end)
steps = king_steps(start, end)

# 输出结果
print(moves)
for step in steps:
  print(step)
