#include <bits/stdc++.h>
using namespace std;
vector<string> ans;
int i, j, x, y;
char c[8][8];
void Find(char op, int &x, int &y) {
  for (x = 0; x < 6; x++)
    for (y = 0; y < 6; y++)
      if (c[x][y] == op) return;
}
void go(int x, int y, int flag) {
  string v;
  for (int i = 0; i < 13; i++) {
    if (!flag) {
      if (i & 1) {
        if (i / 2 & 1)
          v = "D";
        else
          v = "U";
        v += char(y + 49);
      } else {
        v = "R";
        v += char(x + 49);
      }
    } else {
      if (i & 1) {
        if (i / 2 & 1)
          v = "R";
        else
          v = "L";
        v += char(x + 49);
      } else {
        v = "D";
        v += char(y + 49);
      }
    }
    ans.push_back(v);
  }
  if (flag)
    swap(c[x][y], c[x][y + 1]);
  else
    swap(c[x][y], c[x + 1][y]);
}
int main() {
  ios_base::sync_with_stdio(false), cin.tie(0), cout.tie(0);
  string s;
  for (i = 0; i < 6; i++) {
    cin >> s;
    for (int j = 0; j < 6; j++) c[i][j] = s[j];
  }
  for (i = 0; i < 6; i++)
    for (j = 0; j < 6; j++) {
      char op = i * 6 + j;
      if (op <= 9)
        op = char(op + 48);
      else
        op = char(op - 10 + 65);
      Find(op, x, y);
      while (y > j) {
        go(x, y - 1, 1);
        y--;
      }
      while (y < j) {
        go(x, y, 1);
        y++;
      }
      while (x > i) {
        go(x - 1, y, 0);
        x--;
      }
    }
  cout << ans.size() << '\n';
  for (auto y : ans) cout << y << '\n';
  return 0;
}
