#include <bits/stdc++.h>
using namespace std;
void err() { cout << endl; }
template <class T, class... Ts>
void err(const T& arg, const Ts&... args) {
  cout << arg << ' ';
  err(args...);
}
using ll = long long;
using db = double;
using pII = pair<int, int>;
using pIS = pair<int, string>;
const int INF = 0x3f3f3f3f;
const ll INFLL = 0x3f3f3f3f3f3f3f3f;
const int N = 2e5 + 10;
int n, m, k;
vector<pIS> vec;
void push(pIS a) {
  if (a.first) vec.push_back(a);
}
void RUN() {
  cin >> n >> m >> k;
  int limit = 4 * n * m - 2 * n - 2 * m;
  if (k > limit) {
    cout << "NO"
         << "\n";
    return;
  }
  pIS moveRight = pIS(m - 1, "R");
  pIS moveDownup = pIS(m - 1, "DUL");
  pIS moveDown = pIS(1, "D");
  pIS moveLeft = pIS(m - 1, "L");
  pIS moveUP = pIS(n - 1, "U");
  int row = 1;
  while (k) {
    if (k >= m - 1) {
      push(moveRight);
      k -= m - 1;
    } else {
      push(pIS(k, "R"));
      k = 0;
    }
    if (row != n) {
      if (k >= 3 * (m - 1)) {
        push(moveDownup);
        k -= 3 * (m - 1);
      } else {
        int remind = k % 3;
        push(pIS(k / 3, "DUL"));
        if (remind == 1)
          push(pIS(1, "D"));
        else if (remind == 2)
          push(pIS(1, "DU"));
        k = 0;
      }
      if (k >= 1) {
        --k;
        push(moveDown);
      }
    } else {
      if (k >= m - 1) {
        push(moveLeft);
        k -= m - 1;
      } else {
        push(pIS(k, "L"));
        k = 0;
      }
      if (k >= n - 1) {
        k -= n - 1;
        push(moveUP);
      } else {
        push(pIS(k, "U"));
        k = 0;
      }
    }
    ++row;
  }
  cout << "YES"
       << "\n";
  cout << vec.size() << "\n";
  for (auto it : vec) {
    cout << it.first << " " << it.second << "\n";
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr), cout.tie(nullptr);
  cout << fixed << setprecision(20);
  RUN();
  return 0;
}
