#include <bits/stdc++.h>
using namespace std;
int n, m, k, dir;
vector<pair<int, string> > ans;
int main() {
  scanf("%d%d%d", &n, &m, &k);
  if (k > 4 * n * m - 2 * n - 2 * m) return printf("NO"), 0;
  int nowx = m;
  if (n == 1) {
    if (k) ans.emplace_back(min(m - 1, k), string("R")), k -= min(m - 1, k);
    if (k) ans.emplace_back(min(m - 1, k), string("L")), k -= min(m - 1, k);
    printf("YES\n%d\n", (int)ans.size());
    for (auto i : ans) printf("%d %s\n", i.first, i.second.c_str());
    return 0;
  }
  while (nowx > 1) {
    if (!k) break;
    int cost = min(n - 1, k / 3);
    if (cost > 0) {
      ans.emplace_back(cost, string("DRL"));
      cost = cost;
      k -= cost * 3;
    }
    if (cost < n - 1) {
      if (k == 1) ans.emplace_back(1, string("D"));
      if (k == 2) ans.emplace_back(1, string("DR"));
      k = 0;
      break;
    }
    nowx--;
    if (k) ans.emplace_back(min(n - 1, k), string("U")), k -= min(n - 1, k);
    if (k) ans.emplace_back(1, string("R")), k--;
  }
  if (k) ans.emplace_back(min(n - 1, k), string("D")), k -= min(n - 1, k);
  if (k) ans.emplace_back(min(n - 1, k), string("U")), k -= min(n - 1, k);
  if (k) ans.emplace_back(min(m - 1, k), string("L")), k -= min(m - 1, k);
  printf("YES\n%d\n", (int)ans.size());
  for (auto i : ans) printf("%d %s\n", i.first, i.second.c_str());
  return 0;
}
