#!/usr/bin/env python
#coding:utf-8
#problem description: https://www.v2ex.com/t/98224

start_node = dict(state='2011001100110011', row=0, col=0, prev=None);
target_state = '2101101001011010'

def swap(state, r1, c1, r2, c2):
    m, n = list(sorted([r1 * 4 + c1, r2 * 4 + c2]))
    return state[:m] + state[n] + state[m+1:n] + state[m] + state[n+1:]

q = [start_node]
visited = set(start_node['state'])
qi = 0
while qi < len(q):
    cur = q[qi]
    qi += 1
    s, r, c = cur['state'], cur['row'], cur['col']

    if s == target_state: #found
        def trace(node):
            if node['prev'] != None:
                trace(node['prev'])
            else:
                return
            r1, c1 = node['prev']['row'], node['prev']['col']
            r2, c2 = node['row'], node['col']
            if r2 == r1 - 1:
                print 'U', #'上',
            elif r2 == r1 + 1:
                print 'D', #'下',
            elif c2 == c1 - 1:
                print 'L', #'左',
            else:
                print 'R', #'右',

        trace(cur)
        break

    def move(row, col):
        if row >= 0 and row < 4 and col >= 0 and col < 4:
            state = swap(s, r, c, row, col)
            if state not in visited:
                visited.add(state)
                q.append(dict(state=state, row=row, col=col, prev=cur))

    move(r - 1, c)
    move(r + 1, c)
    move(r, c - 1)
    move(r, c + 1)