Jaemin розробив застосунок із грою-головоломкою.
В одній із клітинок сітки розміщено кульку. Її можна котити вгору, вниз, ліворуч або праворуч. Кулька котиться в цьому напрямку, доки не зіткнеться зі стіною або межею. У деяких клітинках є зірки; гравець отримує зірку, коли кулька зупиняється в її клітинці або проходить через неї. Мета гри — зібрати всі зірки в сітці.
Цей застосунок має редактор рівнів, у якому гравці можуть створювати власні рівні та ділитися ними. Одного дня хтось запропонував: «Будь ласка, додай функцію, яка перевірятиме, чи можна пройти мій рівень!» Легше сказати, ніж зробити, правда?
Вхідні дані
Перший рядок вхідних даних містить два цілих числа $H$ (висота) та $W$ (ширина). ($1 \leq H, W \leq 50$) Кожен із наступних $H$ рядків містить рядок довжини $W$, що описує один ряд сітки. «#» позначає стіну, «.» — порожню клітинку, «O» — кульку, а «*» — зірку. У сітці є рівно одна кулька та принаймні одна зірка.
Вихідні дані
Виведіть «YES», якщо можна зібрати всі зірки, інакше виведіть «NO».
Приклади
Вхідні дані 1
3 7 #..O..# #.###.# *..#..*
Вихідні дані 1
NO
Вхідні дані 2
6 6 *..*## ..O... *..*#. ####*. ...... .....#
Вихідні дані 2
YES