eolymp
bolt
Try our new interface for solving problems
Problems

No left turns

No left turns

Человеку, находящемуся в некотором лабиринте, нужно попасть из одной клетки в другую. Каждый ход он может переместиться на одну клетку в одном из четырех направлений (вверх, вниз, влево или вправо), однако есть некоторые ограничения на его перемещения. Первоначальное направление движения он может выбирать произвольно. Однако после этого не разрешается разворачиваться на \textbf{180}° и делать левые повороты (повороты на \textbf{90}° против часовой стрелки). Таким образом разрешены лишь повороты на \textbf{90}° по часовой стрелке. Кроме того запрещается покидать пределы лабиринта. Напишите программу для нахождения кратчайшего разрешенного пути между заданными клетками. \InputFile В первой строке задаются два целых числа \textbf{M} и \textbf{N} (\textbf{1} ≤ \textbf{M}, \textbf{N} ≤ \textbf{1500}), определяющие размеры лабиринта. Дальше следуют \textbf{M} строк по \textbf{N} символов в каждом, описывающие лабиринт. Символ "\textbf{*}" обозначает стену (в соответствующую клетку не разрешается двигаться), "\textbf{.}" - свободная клетка, "\textbf{S}" - клетка, где изначально находится человек, "\textbf{D}" - клетка, куда нужно добраться. Начальная и конечная клетка считаются свободными и встречаются ровно по одному разу. \OutputFile В единственную строку выведите строку, определяющую кратчайшую последовательность ходов, которая сможет привести человека из начальной клетки в конечную без разворотов и левых поворотов. Символ "\textbf{U}" этой строки обозначает перемещение вверх на одну клетку, "\textbf{D}" - вниз, "\textbf{L}" - влево, "\textbf{R}" - вправо. Если добраться до конечной клетки без нарушения правил невозможно, выведите сообщение "\textbf{NO SOLUTION}" (без кавычек).
Time limit 1 second
Memory limit 64 MiB
Input example #1
8 7
.......
.***.*.
.*...*.
.*.*..D
.*.***.
.*S....
.*****.
.......
Output example #1
RRRRDDLLLLLLUUUUUUURRRRRRDDD
Author Неспирный В.Н.
Source III этап УОИ Донецк, 2012 г. II тур 10-11 кл.