#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const long long LLINF = 1e18;
const int maxN = 1e5;
vector<pair<int, string>> ans;
void print_ans() {
  printf("YES\n");
  int aux = ans.size();
  for (auto p : ans)
    if (p.first == 0) aux--;
  printf("%d\n", aux);
  for (auto p : ans) {
    if (p.first == 0) continue;
    cout << p.first << " " << p.second << endl;
  }
}
int main() {
  long long n, m, k;
  scanf("%lld %lld", &n, &m), scanf("%lld", &k);
  long long curr_k = 0;
  for (int i = 0; i < n; i++) {
    if (i == 0) {
      if (curr_k + m - 1 >= k) {
        ans.push_back({k - curr_k, "R"});
        print_ans();
        return 0;
      } else {
        ans.push_back({m - 1, "R"});
        curr_k += m - 1;
      }
      if (curr_k + m - 1 >= k) {
        ans.push_back({k - curr_k, "L"});
        print_ans();
        return 0;
      } else {
        ans.push_back({m - 1, "L"});
        curr_k += m - 1;
      }
    }
    if (i != 0) {
      if (curr_k + 3 * (m - 1) >= k) {
        if ((k - curr_k) / 3 > 0) ans.push_back({(k - curr_k) / 3, "RUD"});
        if ((k - curr_k) % 3 == 1) ans.push_back({1, "R"});
        if ((k - curr_k) % 3 == 2) ans.push_back({1, "RU"});
        print_ans();
        return 0;
      } else {
        ans.push_back({m - 1, "RUD"});
        curr_k += 3 * m - 3;
      }
      if (curr_k + m - 1 >= k) {
        ans.push_back({k - curr_k, "L"});
        print_ans();
        return 0;
      } else {
        ans.push_back({m - 1, "L"});
        curr_k += m - 1;
      }
    }
    if (i != n - 1) {
      ans.push_back({1, "D"});
      curr_k++;
      if (curr_k == k) {
        print_ans();
        return 0;
      }
    } else {
      if (curr_k + n - 1 >= k) {
        ans.push_back({k - curr_k, "U"});
        print_ans();
        return 0;
      } else {
        printf("NO\n");
        return 0;
      }
    }
  }
  printf("NO\n");
  return 0;
}
