#include <bits/stdc++.h>
using namespace std;
int getX(string s) {
  switch (s[0]) {
    case 'a':
      return 1;
      break;
    case 'b':
      return 2;
      break;
    case 'c':
      return 3;
      break;
    case 'd':
      return 4;
      break;
    case 'e':
      return 5;
      break;
    case 'f':
      return 6;
      break;
    case 'g':
      return 7;
      break;
    case 'h':
      return 8;
      break;
  }
}
int getY(string s) {
  switch (s[1]) {
    case '1':
      return 1;
      break;
    case '2':
      return 2;
      break;
    case '3':
      return 3;
      break;
    case '4':
      return 4;
      break;
    case '5':
      return 5;
      break;
    case '6':
      return 6;
      break;
    case '7':
      return 7;
      break;
    case '8':
      return 8;
      break;
  }
}
int main() {
  string s, t;
  cin >> s >> t;
  int x1, y1, x2, y2;
  x1 = getX(s);
  y1 = getY(s);
  x2 = getX(t);
  y2 = getY(t);
  int a, b;
  a = x2 - x1;
  b = y2 - y1;
  int moves = max(abs(a), abs(b));
  cout << moves << endl;
  string m1, m2;
  if (a == 0) {
    m1 = "";
  } else if (a > 0) {
    m1 = "R";
  } else {
    m1 = "L";
  }
  if (b == 0) {
    m2 = "";
  } else if (b > 0) {
    m2 = "U";
  } else {
    m2 = "D";
  }
  for (int i = 0; i < min(abs(a), abs(b)); i++) {
    cout << m1 << m2 << endl;
  }
  string d = (abs(a) > abs(b) ? m1 : m2);
  for (int i = 0; i < moves - min(abs(a), abs(b)); i++) {
    cout << d << endl;
  }
}
