#include<bits/stdc++.h> using namespace std; #define ll long long int n,m,k,tot; vector<char>v[10005];//先把连续动作放在v里 struct Step{ string s; int loop; Step(){} }; vector<Step> ans; void solve(){ int sum=0; for(int i=1;i<=tot;i++){ if(v[i].size()==0)continue; if(v[i].size() && v[i][0]=='R'){//RRRR int k=v[i].size(); Step step; step.s="R"; step.loop=k; ans.push_back(step); continue; } if(v[i].size() && v[i][0]=='L'){//LLLL int k=v[i].size(); Step step; step.s="L"; step.loop=k; ans.push_back(step); continue; } if(v[i].size() && v[i][0]=='U'){//UUUU int k=v[i].size(); Step step; step.s="U"; step.loop=k; ans.push_back(step); continue; } if(v[i].size() && v[i].size()>1 && v[i][0]=='D'){//DRU int k=v[i].size(); if(k/3>0){ Step step; step.s="DRU"; step.loop=k/3; ans.push_back(step); } if(k%3){ Step step; if(k%3==1){ Step step; step.s="D"; step.loop=1; ans.push_back(step); } else if(k%3==2){ Step step; step.s="DR"; step.loop=1; ans.push_back(step); } } continue; } if(v[i].size()==1 && v[i][0]=='D'){//D Step step; step.s="D"; step.loop=1; ans.push_back(step); continue; } } cout<<ans.size()<<' '; for(int i=0;i<ans.size();i++) cout<<ans[i].loop<<" "<<ans[i].s<<' '; } int main(){ int t=1; while(t--){ cin>>n>>m>>k; int sum=n*m*4-2*n-2*m; if(sum<k){puts("NO");continue;} puts("YES"); tot=0; if(m>1)++tot; for(int i=1;i<m;i++){ v[tot].push_back('R'); k--; if(k==0)break; } if(k==0){solve();continue;} if(m>1)++tot; for(int i=1;i<m;i++){ v[tot].push_back('L'); k--; if(k==0)break; } if(k==0){solve();continue;} for(int i=1;i<n;i++){ if(m>1)++tot; for(int j=1;j<m;j++){ v[tot].push_back('D'); k--; if(k==0)break; v[tot].push_back('R'); k--; if(k==0)break; v[tot].push_back('L'); k--; if(k==0)break; } if(k==0)break; ++tot; v[tot].push_back('D'); k--; if(k==0)break; ++tot; for(int j=1;j<m;j++){ v[tot].push_back('L'); k--; if(k==0)break; } if(k==0)break; } if(k==0){solve();continue;} ++tot; for(int i=1;i<n;i++){ v[tot].push_back('U'); k--; if(k==0)break; } if(k==0){solve();continue;} for(int i=1;i<=tot;i++)v[i].clear(); } }