B. Сильно связный город
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим город, в котором есть n горизонтальных улиц пересекаются с m вертикальными, формируя сетку размера (n - 1) × (m - 1). Чтобы снизить количество заторов, мэр города решил сделать каждую улицу односторонней. Это значит, что по каждой горизонтальной улице машины будут ехать либо только с запада на восток, либо только с востока на запад. Аналогично, по каждой вертикальной улице машины будут ехать либо только с севера на юг, либо только с юга на север. На любом перекрестке можно свернуть с вертикальной улицы на горизонтальную и наоборот.

Мэр города получил несколько вариантов направления улиц. Ваша задача — проверить можно ли в данном варианте добраться от любого перекрестка до любого другого перекрестка, двигаясь по дорогам в указанном для них направлении.

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

В первой строке записано два целых числа n, m, (2 ≤ n, m ≤ 20), обозначающие соответственно количество горизонтальных и вертикальных улиц.

Во второй строке записана строка длины n из символов '<' и '>' — направления горизонтальных улиц. Если очередной символ этой строки равняется '<', то соответствующая улица направлена с востока на запад, в противном случае улица направлена с запада на восток. Улицы приводятся в порядке с севера на юг.

В третьей строке записана строка длины m из символов '^' и 'v' — направления вертикальных улиц. Если очередной символ равняется '^', то улица направлена с юга на север, в противном случае улица направлена с севера на юг. Улицы приводятся в порядке с запада на восток.

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

Если указанная схема удовлетворяет требованиям, выведите в единственной строке "YES", в противном случае выведите в единственной строке "NO".

Примеры
Входные данные
3 3
><>
v^v
Выходные данные
NO
Входные данные
4 6
<><>
v^v^v^
Выходные данные
YES
Примечание

Рисунок в условии соответствует второму примеру.