#include <bits/stdc++.h>
using namespace std;
int n, m, k;
vector<string> s;
vector<int> rep;
string te[] = {"RDU", "DLR", "LUD", "URL"};
string te1[] = {"R", "D", "L", "U"};
void go(int n, int m, int dir, bool first = 0) {
  if (n == 0 || m == 0) return;
  if (k == 0) return;
  if (dir % 2 == 0) {
    if (first) {
      if (n >= 2 && m > 1) {
        if (k >= 2) {
          s.push_back("DU");
          k -= 2;
        } else {
          s.push_back("D");
          k--;
        }
        rep.push_back(1);
      }
    }
    int nm = max(m - 1 - first, 0);
    string curr = te[dir];
    if (n == 1) {
      curr = te1[dir];
    }
    int x = k / curr.size();
    x = min(x, nm);
    k -= x * curr.size();
    if (x != 0) {
      s.push_back(curr);
      rep.push_back(x);
    }
    if (x < nm && k && k <= 2) {
      s.push_back(curr.substr(0, k));
      rep.push_back(1);
      k = 0;
    }
    if (k && m - first != 0) {
      k--;
      s.push_back(te1[dir]);
      rep.push_back(1);
    }
    go(n - 1, m, (dir + 1) % 4);
    curr = te1[(dir + 2) % 4];
    nm++;
    x = k / curr.size();
    x = min(x, nm);
    if (x != 0 && m - first != 0) {
      k -= x * curr.size();
      s.push_back(curr);
      rep.push_back(x);
    }
  } else {
    int nm = max(n - 1 - first, 0);
    string curr = te[dir];
    if (m == 1) {
      curr = te1[dir];
    }
    int x = k / curr.size();
    x = min(x, nm);
    k -= x * curr.size();
    if (x != 0) {
      s.push_back(curr);
      rep.push_back(x);
    }
    if (x < nm && k && k <= 2) {
      s.push_back(curr.substr(0, k));
      rep.push_back(1);
      k = 0;
    }
    if (k && n - first != 0) {
      k--;
      s.push_back(te1[dir]);
      rep.push_back(1);
    }
    go(n, m - 1, (dir + 1) % 4);
    curr = te1[(dir + 2) % 4];
    nm++;
    x = k / curr.size();
    x = min(x, nm);
    k -= x * curr.size();
    if (x != 0) {
      s.push_back(curr);
      rep.push_back(x);
    }
  }
}
int main() {
  ios::sync_with_stdio(0);
  cin >> n >> m >> k;
  if (k > m * n * 4 - n * 2 - m * 2) {
    cout << "NO\n";
    return 0;
  }
  go(n, m, 0, 1);
  if (s.size() > 3000 || k) {
    cout << "NO\n";
    return 0;
  }
  cout << "YES\n";
  cout << s.size() << endl;
  for (int i = 0; i < s.size(); i++) {
    cout << rep[i] << " " << s[i] << endl;
  }
  return 0;
}
