-- for 300 points
local N = io.read("n")
local points = {}
for i=1,N do
    local t = {}
    t[1] = io.read("n")
    t[2] = io.read("n")
    table.insert(points, t)
    assert(math.abs(t[1]) <= 10)
    assert(math.abs(t[2]) <= 10)
end

local even = false
local odd = false
for i=1, N do
    local t = points[i]
    if (t[1] + t[2]) % 2 == 0 then
        even = true
    else
        odd = true
    end
end
if even and odd then
    print("-1")
    return
end

local m = 20
if odd then
    m = m + 1
end
local lengths = {}
for i=1,m do
    lengths[i] = 1
end

local modes = {}
for i=1, N do
    local move = {}
    local x, y = 0, 0
    local t = points[i]
    while x ~= t[1] do
        if t[1] < 0 then
            table.insert(move, "L")
            x = x - 1
        else
            table.insert(move, "R")
            x = x + 1
        end
        assert(#move <= m)
    end
    while y ~= t[2] do
        if t[2] < 0 then
            table.insert(move, "D")
            y = y - 1
        else
            table.insert(move, "U")
            y = y + 1
        end
        assert(#move <= m)
    end
    while #move < m do
        table.insert(move, "L")
        table.insert(move, "R")
        assert(#move <= m)
    end
    assert(#move == m)
    modes[i] = table.concat(move, "")
end

print(m)
print(table.concat(lengths, " "))
for i=1, N do
    print(modes[i])
end