Вам задано прямоугольное клетчатое поле, состоящее из *n* строк и *m* столбцов. Поле содержит цикл из символов «*», такой что:
 -  цикл можно обойти, посетив каждую его клетку ровно один раз, перемещаясь каждый раз вверх/вниз/вправо/влево на одну клетку; -  цикл не содержит самопересечений и самокасаний, то есть две клетки цикла соседствуют по стороне тогда и только тогда, когда они соседние при перемещении вдоль цикла (самокасание по углу тоже запрещено). 
Ниже изображены несколько примеров допустимых циклов:

Все клетки поля, отличные от цикла, содержат символ «.». Цикл на поле ровно один. Посещать клетки, отличные от цикла, Роботу нельзя.

В одной из клеток цикла находится Робот. Эта клетка помечена символом «S». Найдите последовательность команд для Робота, чтобы обойти цикл. Каждая из четырёх возможных команд кодируется буквой и обозначает перемещение Робота на одну клетку:
 -  «U» — сдвинуться на клетку вверх, -  «R» — сдвинуться на клетку вправо, -  «D» — сдвинуться на клетку вниз, -  «L» — сдвинуться на клетку влево. 
Робот должен обойти цикл, побывав в каждой его клетке ровно один раз (кроме стартовой точки — в ней он начинает и заканчивает свой путь).

Найдите искомую последовательность команд, допускается любое направление обхода цикла.
В первой строке входных данных записаны два целых числа *n* и *m* (3 ≤ *n*, *m* ≤ 100) — количество строк и столбцов прямоугольного клетчатого поля соответственно.

В следующих *n* строках записаны по *m* символов, каждый из которых — «.», «*» или «S». Гарантируется, что отличные от «.» символы образуют цикл без самопересечений и самокасаний. Также гарантируется, что на поле ровно одна клетка содержит «S» и что она принадлежит циклу. Робот не может посещать клетки, помеченные символом «.».
В первом тестовом примере для обхода по часовой стрелке последовательность посещенных роботом клеток выглядит следующим образом:
 1.  клетка (3, 2); 1.  клетка (3, 1); 1.  клетка (2, 1); 1.  клетка (1, 1); 1.  клетка (1, 2); 1.  клетка (1, 3); 1.  клетка (2, 3); 1.  клетка (3, 3); 1.  клетка (3, 2).
3 3
***
*.*
*S*
LUURRDDL
6 7
.***...
.*.*...
.*.S**.
.*...**
.*....*
.******
UULLDDDDDRRRRRUULULL
100 3
***
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
S.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
*.*
***
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUURRDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDLLUUUUUUUUUUUUUUUUUU
3 100
****************************************************************************************************
*..................................................................................................*
**********************************************************************************S*****************
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLUURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRDDLLLLLLLLLLLLLLLLL
def next1(x, y):
    global data, ans
    data[y][x][1] = True
    if data[y][x - 1][0] == '*' and ( not data[y][x - 1][1]):
        ans += 'L'
        return x - 1, y
    if data[y - 1][x][0] == '*' and ( not data[y - 1][x][1]):
        ans += 'U'
        return x, y - 1
    if data[y][x + 1][0] == '*' and ( not data[y][x + 1][1]):
        ans += 'R'
        return x + 1, y
    if data[y + 1][x][0] == '*' and ( not data[y + 1][x][1]):
        ans += 'D'
        return x, y + 1
    return None, None
    

n, m = map(int, input().split())
data = []
data.append([])
for i in range(m + 2):
    data[0].append(['.', False])
for i in range(n):
    h = input()
    sd = []
    sd.append(['.', False])
    for i in range(m):
        sd.append([h[i], False])
    sd.append(['.', False])
    data.append(sd)
data.append([])
for i in range(m + 2):
    data[-1].append(['.', False])
f = True
startx, starty = -1, -1
for i in range(1, n + 1):
    if f:
        for j in range(1, m + 1):
            if data[i][j][0] == 'S':
                startx, starty = j, i
                f = False
                break
x, y, h1, h2 = startx, starty, startx, starty
ans = ''
if data[y][x - 1][0] == '*' and ( not data[y][x - 1][1]):
    x, y =  x - 1, y
    ans += 'L'
elif data[y - 1][x][0] == '*' and ( not data[y - 1][x][1]):
    x, y = x, y - 1
    ans += 'U'
elif data[y][x + 1][0] == '*' and ( not data[y][x + 1][1]):
    x, y = x + 1, y
    ans += 'R'
elif data[y + 1][x][0] == '*' and ( not data[y + 1][x][1]):
    x, y = x, y + 1
    ans += 'D'
while True:
    x, y = next1(x, y)
    if x == None and y == None:
        break
    else:
        x1, y1 = x, y
if x1 - startx == 1:
    ans += 'L'
elif x1 - startx == -1:
    ans += 'R'
elif y2 - starty == 1:
    ans += 'D'
elif y2 - starty == -1:
    ans += 'U'
print(ans)