Вам задано прямоугольное клетчатое поле, состоящее из *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
NEIGHBOURS = [(0, 1), (0, -1), (1, 0), (-1, 0)]


def dfs(matr, n, m, v, s, visited=None, path=None):
    if visited is None:
        visited = [[False] * m for i in range(n)]
        path = []
    visited[v[0]][v[1]] = True    
    for i, j in NEIGHBOURS:
        if (0 <= v[0] + i < n) and (0 <= v[1] + j < m) and not visited[v[0] + i][v[1] + j] and matr[v[0] + i][v[1] + j] == '*':
            if i == 1:
                path.append('D')
            if i == -1:
                path.append('U')
            if j == 1:
                path.append('R')
            if j == -1:
                path.append('L')
            dfs(matr, n, m, (v[0] + i, v[1] + j), s, visited, path)
    for i, j in NEIGHBOURS:        
        if (0 <= v[0] + i < n) and (0 <= v[1] + j < m) and matr[v[0] + i][v[1] + j] == 'S':                        
                if i == 1:
                    path.append('D')
                if i == -1:
                    path.append('U')
                if j == 1:
                    path.append('R')
                if j == -1:
                    path.append('L')    
    if v == s:
        return path[:-1]
                
    


def read_matrix(n, m):
    matr = []
    for i in range(n):
        matr.append(input())
        for j in range(m):
            if matr[i][j] == 'S':
                si = i
                sj = j
    return (matr, (si, sj))


n, m = [int(x) for x in input().split()]
matr, s = read_matrix(n, m)
path = dfs(matr, n, m, s, s)
print(''.join(path))
