#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const double pi = 2 * acos(0.0);
const double eps = 1e-9;
template <class T>
inline T gcd(T a, T b) {
  if (a < 0) return gcd(-a, b);
  if (b < 0) return gcd(a, -b);
  return (b == 0) ? a : gcd(b, a % b);
}
template <class T>
inline T lcm(T a, T b) {
  if (a < 0) return lcm(-a, b);
  if (b < 0) return lcm(a, -b);
  return a * (b / gcd(a, b));
}
struct debugger {
  template <typename T>
  debugger& operator,(const T& v) {
    cerr << v << " ";
    return *this;
  }
} dbg;
int main() {
  int n, m, k;
  pair<int, int> p1[205];
  pair<int, int> p2[205];
  vector<char> v;
  cin >> n >> m >> k;
  int mx = 0;
  int my = 0;
  for (int i = 0; i < k; i++) {
    cin >> p1[i].first >> p1[i].second;
    mx = max(mx, p1[i].first - 1);
    my = max(my, m - p1[i].second);
  }
  for (int i = 0; i < k; i++) {
    cin >> p2[i].first >> p2[i].second;
  }
  for (int i = 1; i <= mx; i++) v.push_back('U');
  for (int i = 1; i <= my; i++) v.push_back('R');
  for (int i = 1; i <= m; i++) {
    for (int j = 1; j < n; j++) {
      if (i % 2 == 1)
        v.push_back('D');
      else
        v.push_back('U');
    }
    v.push_back('L');
  }
  cout << v.size() << '\n';
  for (auto x : v) cout << x;
  cout << '\n';
}
