J. Модный костюм
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Лоренцо считается одним из самых выдающихся дизайнеров одежды за последние тысячу лет. Совсем недавно, Лоренцо представил свое новое, по истине гениальное творение, жемчужину в сфере моды. Он разработал костюм, целиком сшитый из липучки. Костюм настолько уникальный, что ни один дизайнер еще не представлял что-либо подобное. К сожалению, костюм оказался не совсем практичным. Когда Лоренцо направлялся на выставку одежды, он решил сэкономить, и вместо такси бизнес-класса решил заказать эконом. В результате, его костюм прилип к тканевому салону автомобиля, и Лоренцо потребовалась помощь водителя, чтобы выбраться из машины. Справившись с этой сложностью, внезапно возникла другая. Как оказалось, на выставке, некоторые из перегородок были покрыты тканью, и прислонившись к одной из них, Лоренцо опять прилип. Теперь он может передвигаться только тремя способами: вращаться по часовой стрелке, вращаться против часовой стрелки, либо попробовать изо всех сил оттолкнуться от перегородки, в результате чего, Лоренцо будет лететь перпендикулярно поверхности стены до тех пор, пока не врежется в другую стену, либо не вылетит за пределы выставки. Чтобы справиться и с этой трудностью, ему необходимо либо попасть на обычную перегородку (не покрытую тканью), либо вылететь за пределы выставки. Обратите внимание, что если Лоренцо прилип к стене снаружи выставки, то это не означает, что он вылетел за её пределы. К сожалению, с момента как он покинул такси, у Лоренцо осталось не очень много сил, поэтому он хочет совершить минимальное количество движений, чтобы выбраться из этой ситуации. Он решил обратиться к вам за помощью и попросил разработать план, в результате которого он снова сможет свободно перемещаться (не прислоняясь к стене).

У вас есть план выставки, представляющий из себя клетчатое поле размером $$$w$$$ клеток в ширину и $$$h$$$ клеток в высоту. Клетки пронумерованы сверху вниз, слева направо, начиная с единицы. На границах клеток могут стоять перегородки. Известно, что всего есть $$$n$$$ перегородок покрытых тканью (липких) и $$$m$$$ обычных (не липких). Вам известно, к какой перегородке с какой стороны прилип Лоренцо. Вам необходимо найти минимальное количество действий, выполняя которые, Лоренцо сможет свободно перемещаться. Всего существует три вида действий:

  1. Сделать один поворот по часовой стрелке. Тогда Лоренцо переместится на соседнюю по стороне перегородку, либо на обратную сторону перегородки, если соответствующей соседней стены нет.
  2. Сделать один поворот против часовой стрелки. Аналогично предыдущему действию.
  3. Со всей силы оттолкнуться от перегородки. В таком случае, Лоренцо будет лететь в противоположном от стены направлении, либо пока не врежется в другую стену, либо не вылетит за пределы выставки.
Рисунок 1. Примеры возможных действий
Входные данные

В первой строке задано четыре целых числа $$$w$$$, $$$h$$$, $$$n$$$ и $$$m$$$ — ширина и высота выставки, а также количество перегородок покрытых тканью и обычных перегородок соответственно.

В следующих $$$n$$$ строках задано два целых числа $$$x$$$ ($$$1 \le x \le w$$$) и $$$y$$$ ($$$1 \le y \le h$$$) и один символ $$$t$$$ — координаты клетки и ее граница, на которой расположена липкая перегородка. Символ $$$L$$$ означает, что перегородка расположена на левой границе, $$$R$$$ — на правой, $$$U$$$ — на верхней и $$$D$$$ — на нижней.

В следующих $$$m$$$ строках задано описание обычных перегородок в таком же формате.

В последней строке задано два целых числа $$$sx$$$ ($$$1 \le sx \le w$$$) и $$$sy$$$ ($$$1 \le sy \le h$$$) и один символ $$$st$$$ — координаты клетки и ее граница, к которой прилип Лоренцо. Гарантируется, что Лоренцо прилип к стене, покрытой тканью.

Гарантируется, что каждая стена не может быть одновременно липкой и обычной (даже различные стороны). Также обратите внимание, что например «1 1 D» и «1 2 U» описывают одну и ту же стену.

$$$$$$1 \le w, h \le 10^5$$$$$$ $$$$$$1 \le n \le 5 \cdot 10^5$$$$$$ $$$$$$0 \le m \le 5 \cdot 10^5$$$$$$ $$$$$$n + m \le 5 \cdot 10^5$$$$$$

Выходные данные

В первой строке выведите «No», если Лоренцо не сможет освободиться.

В противном случае в первой строке выведите «Yes», а в следующей строке выведите строку, описание маршрута Лоренцо.

Символ «>» означает поворот по часовой стрелке, «<» — против часовой стрелки, а «^{}» означает, что Лоренцо необходимо оттолкнуться от стены. Если существует несколько вариантов ответа, вам необходимо вывести любой, состоящий из наименьшего числа действий.

Примеры
Входные данные
1 1 3 1
1 1 L
1 1 R
1 1 D
1 1 U
1 1 D
Выходные данные
Yes
^
Входные данные
1 1 3 1
1 1 L
1 1 R
1 1 D
1 1 U
1 1 L
Выходные данные
Yes
<
Входные данные
2 2 8 0
1 1 U
2 1 U
1 1 L
1 2 L
2 1 R
2 2 R
2 2 D
1 1 D
1 1 U
Выходные данные
Yes
^>^
Входные данные
1 1 3 0
1 1 U
1 1 D
1 1 L
1 1 D
Выходные данные
Yes
>^
Входные данные
1 1 4 0
1 1 U
1 1 D
1 1 L
1 1 R
1 1 L
Выходные данные
No
Примечание
Рисунок 2. Визуализация для тестовых примеров 1-3