#include <bits/stdc++.h>
int signum(int);
int signum(int n) {
  if (n > 0)
    return 1;
  else if (n < 0)
    return -1;
  else
    return 0;
}
int main(void) {
  char ch[3], ch1[3];
  scanf("%2s %2s", ch, ch1);
  int x1 = ch[0] - 96;
  int y1 = ch[1] - 48;
  int x2 = ch1[0] - 96;
  int y2 = ch1[1] - 48;
  char ch3[20][3];
  int ctr = 0;
  int xcurr = x1, ycurr = y1, i, j, k = (abs(x2 - x1) + abs(y2 - y1));
  while (k > 0) {
    int xcurr1 = xcurr;
    int ycurr1 = ycurr;
    for (i = xcurr1 - 1; i <= xcurr1 + 1; i++) {
      for (j = ycurr1 - 1; j <= ycurr1 + 1; j++) {
        if ((i == 0) || (i > 8) || (j == 0) || (j > 8)) {
          continue;
        } else {
          if (abs(i - x2) + abs(j - y2) < k) {
            k = abs(i - x2) + abs(j - y2);
            xcurr = i;
            ycurr = j;
          }
        }
      }
    }
    ctr++;
    int s1 = signum(xcurr - xcurr1);
    int s2 = signum(ycurr - ycurr1);
    if ((s1 > 0) && (s2 > 0))
      strcpy(ch3[ctr - 1], "RU");
    else if ((s1 > 0) && (s2 < 0))
      strcpy(ch3[ctr - 1], "RD");
    else if ((s1 < 0) && (s2 < 0))
      strcpy(ch3[ctr - 1], "LD");
    else if ((s1 < 0) && (s2 > 0))
      strcpy(ch3[ctr - 1], "LU");
    else if ((s1 == 0) && (s2 > 0))
      strcpy(ch3[ctr - 1], "U");
    else if ((s1 == 0) && (s2 < 0))
      strcpy(ch3[ctr - 1], "D");
    else if ((s1 > 0) && (s2 == 0))
      strcpy(ch3[ctr - 1], "R");
    else if ((s1 < 0) && (s2 == 0))
      strcpy(ch3[ctr - 1], "L");
  }
  printf("%d\n", ctr);
  for (i = 0; i < ctr; i++) {
    printf("%s\n", ch3[i]);
  }
  return 0;
}
