import sys
import time
from random import random
H, W, K, T = 30, 30, 450, 10000
p = 0.6
dx = (1, 0, -1, 0,)
dy = (0, 1, 0, -1,)
drc = ['R', 'D', 'L', 'U']
def solve():
start = time.time()
# Input
input()
s, g = [], []
for i in range(K):
a, b, c, d = map(int, input().split())
s.append([a - 1, b - 1])
g.append((c - 1, d - 1))
# Process
L, res = tekito(s, g, start)
# Output
print(L)
print(*res, sep='\n')
def tekito(s, g, start):
res = []
ban = [[0]*W for i in range(H)]
ban_next = [[0]*W for i in range(H)]
for i in range(K):
a, b = s[i]
ban[a][b] = 1
for lp in range(T):
cmd = ''
for i in range(K):
a, b = s[i]
c, d = g[i]
if a > c:
if ban[a - 1][b] == 0 and ban_next[a - 1][b] == 0:
cmd += 'U'
ban_next[a - 1][b] = 1
s[i][0] -= 1
continue
if a < c:
if ban[a + 1][b] == 0 and ban_next[a + 1][b] == 0:
cmd += 'D'
ban_next[a + 1][b] = 1
s[i][0] += 1
continue
if b > d:
if ban[a][b - 1] == 0 and ban_next[a][b - 1] == 0:
cmd += 'L'
ban_next[a][b - 1] = 1
s[i][1] -= 1
continue
if b < d:
if ban[a][b + 1] == 0 and ban_next[a][b + 1] == 0:
cmd += 'R'
ban_next[a][b + 1] = 1
s[i][1] += 1
continue
if random() < p:
for j in range(len(dx)):
if not(0 <= a + dy[j] < H):
continue
if not(0 <= b + dx[j] < W):
continue
if ban[a + dy[j]][b + dx[j]] == 0 and ban_next[a + dy[j]][b + dx[j]] == 0:
cmd += drc[j]
ban_next[a + dy[j]][b + dx[j]] = 1
s[i][0] += dy[j]
s[i][1] += dx[j]
break
else:
cmd += '-'
ban_next[a][b] = 1
else:
cmd += '-'
ban_next[a][b] = 1
if cmd == '-'*K or lp >= 3000:
break
else:
res.append(cmd)
for i in range(H):
ban[i] = ban_next[i][:]
for i in range(H):
ban_next[i] = [0] * W
return len(res), res
def debug(x, table):
for name, val in table.items():
if x is val:
print('DEBUG:{} -> {}'.format(name, val), file=sys.stderr)
return None
if __name__ == '__main__':
solve()