#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()<<'\n';
for(int i=0;i<ans.size();i++)
cout<<ans[i].loop<<" "<<ans[i].s<<'\n';
}
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();
}
}