#include
<
bits/stdc++.h
>
#define
dbg
(
x
) cout
<< #x
<<
"
=
"
<< x
<< endl
#define
eps
1e
-
8
#define
pi
acos
(
-
1.0
)
using
namespace
std
;
typedef
long
long LL
;
const
int inf
=
0x3f3f3f3f
;
template
<
class
T
>
inline
void
read
(
T
&
res
)
{
char c
;T flag
=
1
;
while
((c
=
getchar
())
<
'
0
'
||c
>
'
9
'
)
if
(c
==
'
-
'
)flag
=-
1
;res
=c
-
'
0
'
;
while
((c
=
getchar
())
>=
'
0
'
&&c
<=
'
9
'
)res
=res
*
10
+c
-
'
0
'
;res
*=flag
;
}
namespace
_buff
{
const
size_t BUFF
=
1
<<
19
;
char
ibuf
[BUFF
],
*ib
= ibuf
,
*ie
= ibuf
;
char
getc
()
{
if
(ib
== ie
)
{
ib
= ibuf
;
ie
= ibuf
+
fread
(ibuf
,
1
, BUFF
, stdin
);
}
return ib
== ie
?
-
1
:
*ib
++
;
}
}
int
qread
()
{
using
namespace
_buff
;
int ret
=
0
;
bool pos
=
true
;
char c
=
getc
();
for
(;
(c
<
'
0
'
|| c
>
'
9
'
)
&& c
!=
'
-
'
; c
=
getc
())
{
assert
(
~c
);
}
if
(c
==
'
-
'
)
{
pos
=
false
;
c
=
getc
();
}
for
(; c
>=
'
0
'
&& c
<=
'
9
'
; c
=
getc
())
{
ret
=
(ret
<<
3
)
+
(ret
<<
1
)
+
(c
^
48
);
}
return pos
? ret
:
-ret
;
}
int m
, n
, k
;
map
<string
,
int> mp
;
vector
<pair
<int
, string
>
> vec
;
void
write
(
string
a
)
{
mp
[a
]
=
0
;
}
int
main
()
{
scanf
(
"%d
%d
%d
"
,
&n
,
&m
,
&k
);
if
(
4
* n
* m
-
2
* n
-
2
* m
< k
)
{
puts
(
"
NO
"
);
return
0
;
}
else
{
puts
(
"
YES
"
);
int cnt
=
0
;
for
(
int i
=
1
; i
<= m
-
1
;
++i
)
{
if
(cnt
< k
)
{
++cnt
;
mp
[
"
R
"
]
++
;
}
else
{
break
;
}
}
if
(
mp
[
"
R
"
])
{
vec
.
push_back
(
make_pair
(
mp
[
"
R
"
],
"
R
"
));
write
(
"
R
"
);
}
for
(
int i
=
1
; i
<= m
-
1
;
++i
)
{
if
(cnt
< k
)
{
++cnt
;
mp
[
"
L
"
]
++
;
}
else
{
break
;
}
}
if
(
mp
[
"
L
"
])
{
vec
.
push_back
(
make_pair
(
mp
[
"
L
"
],
"
L
"
));
write
(
"
L
"
);
}
for
(
int j
=
1
; j
<= n
-
1
;
++j
)
{
if
(cnt
> k
)
break
;
for
(
int i
=
1
; i
<= m
-
2
;
++i
)
{
if
(k
- cnt
>
3
)
{
mp
[
"
DRU
"
]
++
;
cnt
+=
3
;
}
}
//dbg(k-cnt);
if
(k
- cnt
>=
3
&& m
>
1
)
{
cnt
+=
3
;
mp
[
"
DRU
"
]
++
;
//dbg(mp["DRU"]);
}
else
{
if
(m
>
1
)
{
if
(cnt
< k
)
{
mp
[
"
D
"
]
++
;
cnt
++
;
vec
.
push_back
(
make_pair
(
mp
[
"
D
"
],
"
D
"
));
write
(
"
D
"
);
}
if
(cnt
< k
)
{
mp
[
"
R
"
]
++
;
cnt
++
;
vec
.
push_back
(
make_pair
(
mp
[
"
R
"
],
"
R
"
));
write
(
"
R
"
);
}
}
}
if
(
mp
[
"
DRU
"
])
{
vec
.
push_back
(
make_pair
(
mp
[
"
DRU
"
],
"
DRU
"
));
write
(
"
DRU
"
);
}
if
(cnt
< k
)
{
mp
[
"
D
"
]
++
;
cnt
++
;
vec
.
push_back
(
make_pair
(
mp
[
"
D
"
],
"
D
"
));
write
(
"
D
"
);
}
for
(
int i
=
1
; i
<= m
-
1
;
++i
)
{
if
(cnt
< k
)
{
mp
[
"
L
"
]
++
;
cnt
++
;
}
else
{
break
;
}
}
if
(
mp
[
"
L
"
]
!=
0
)
{
vec
.
push_back
(
make_pair
(
mp
[
"
L
"
],
"
L
"
));
write
(
"
L
"
);
}
}
for
(
int i
=
1
; i
<= n
-
1
;
++i
)
{
if
(cnt
< k
)
{
++cnt
;
mp
[
"
U
"
]
++
;
}
}
if
(
mp
[
"
U
"
])
{
vec
.
push_back
(
make_pair
(
mp
[
"
U
"
],
"
U
"
));
}
int d
=
vec
.
size
();
printf
(
"%d
\n"
,d
);
for
(
int i
=
0
; i
< d
;
++i
)
{
cout
<<
vec
[i
].
first
<<
"
"
<<
vec
[i
].
second
<< endl
;
}
}
return
0
;
}