#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }
int n, m, k;
struct node {
  char s[10];
  int t;
};
node res[3001];
int main() {
  scanf("%d%d%d", &n, &m, &k);
  if (k > 4 * n * m - 2 * n - 2 * m) {
    printf("NO\n");
  } else {
    printf("YES\n");
    int pt = 1;
    if (k <= n - 1) {
      res[pt].t = k;
      res[pt].s[0] = 'D';
      k = 0;
    } else {
      k -= n - 1;
      res[pt].t = n - 1;
      res[pt].s[0] = 'D';
    }
    res[++pt].s[0] = 'U';
    for (int i = n; i > 1; i--) {
      if (k == 0) break;
      res[pt].t++;
      k--;
    }
    int x = 1;
    while (k && x < m) {
      x++;
      res[++pt].s[0] = 'R';
      res[pt].t++;
      k--;
      if (k == 0) break;
      ++pt;
      res[pt].s[0] = 'D';
      res[pt].s[1] = 'L';
      res[pt].s[2] = 'R';
      for (int i = 1; i < n; i++) {
        if (k >= 3) {
          k -= 3;
          res[pt].t++;
        } else if (k == 2) {
          if (res[pt].t != 0) pt++;
          res[pt].s[0] = 'D';
          res[pt].s[1] = 'L';
          res[pt].s[2] = '\0';
          res[pt].t = 1;
          k -= 2;
        } else if (k == 1) {
          if (res[pt].t != 0) pt++;
          res[pt].s[0] = 'D';
          res[pt].s[1] = '\0';
          res[pt].s[2] = '\0';
          res[pt].t = 1;
          k -= 1;
        } else
          break;
      }
      if (k == 0) break;
      res[++pt].s[0] = 'U';
      for (int i = n; i > 1; i--) {
        if (k) {
          k--;
          res[pt].t++;
        }
      }
    }
    if (k) res[++pt].s[0] = 'L';
    for (int i = m; i > 1; i--) {
      if (k == 0) break;
      res[pt].t++;
      k--;
    }
    int cnt = 0;
    for (int i = 1; i <= pt; i++) {
      if (res[i].t) cnt++;
    }
    printf("%d\n", cnt);
    for (int i = 1; i <= pt; i++) {
      if (res[i].t) printf("%d %s\n", res[i].t, res[i].s);
    }
  }
  return 0;
}
