eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Помста Лі Чака

Помста Лі Чака

\includegraphics{https://static.e-olymp.com/content/89/89c509889e745ce8d0263df6a4720b13efc4d43b.jpg} “Я хочу бути піратом!” Ми нагадуємо цю відому фразу Гайбраша Трипвуда з серії комп'ютерних ігор Monkey Island ("Остров Мавп"). Гайбраш приймав участь в іншій пригоді і серйозно потребує Вашої допомоги, тому що на цей раз це питання життя та смерті. Наш Гайбраш в останній пригоді приплив на таємничий острів (ТО), щоб знайти підказку для ще більш таємничого скарбу. Тем часом Лі Чак взнав про цю поїздку і підготував западню Гайбрашу на ТО. ТО має прямокутну форму (оскільки ми знаємо, що він таємничий) і його мапа може розглядатись як матриця такої ж розмірності. Назвемо кожен елемент матриці ділянкою. Деякі ділянки можуть бути заповнені гірськими скелями. Такі ділянки вважаються непрохідними. Розглянемо острів, мапу якого зображено на малюнку. Ця мапа є матрицею з 6 рядків і 7 стовпців. Кімнати "\textbf{R}" показують ділянки зі скелями. Гайбраш повинен починати з ділянки, позначеною "\textbf{g}", а Лі Чак -- з ділянки "\textbf{l}". У Гайбраша є шанс утекти з цього проклятого острова, якщо він досягне кінцевої ділянки, яку помічено символом "\textbf{e}" на мапі. У кожну одиницю часу Гайбраш може піти на сусідню з поточною ділянку по горизонталі або по вертикалі (але не по діагоналі), якщо в ній немає скель, або не рухатись. Тобто він може переміститися на одну ділянку вгору, вниз, праворуч, ліворуч або взагалі залишитись на місці. У наведеному прикладі Гайбраш в перший момент часу може не рухатись або піти в кімнату ліворуч від нього. Всі вказані правила застосовуються також і до руху Лі Чака, але з одним обмеженням: він не може зайти на кінцеву ділянку (помічену "\textbf{e}"). Тобто, кожну одиницю часу Лі Чак може піти на одну ділянку вгору, вниз, ліворуч, праворуч (якщо тільки це не "\textbf{R}" або "\textbf{e}") або стояти. Ми вважаємо, що кожну одиницю часу спочатку робить хід (або стоїть) Гайбраш, а потім ходить (або стоїть) Лі Чак, в наступну одиницю часу знову спочатку робить хід Гайбраш, а потім Лі Чак і так далі. Якщо Гайбраш і Лі Чак зустрінуться на одній ділянці, то Лі Чак миттєво вб'є нашого бідного Гайбраша. Ваша задача полягає в тому, щоб визначити,чи є по меншій мірі один безпечний шлях чи ні. Безпечний шлях -- це шлях для Гайбраша (від "\textbf{g}" до "\textbf{e}") такий, що Лі Чак не може піймати Гайбраша на цьому шляху незалежно від того, що він (Лі Чак) робить кожну одиницю часу. Наприклад, послідовність "Ліворуч, Вверх, Вверх, Вверх, Праворуч" (за 5 одиниць часу) є безпечним шляхом на наведеній мапі, тому що незалежно від того, що Лі Чак робить у ці 5 одиниць часу, він не може піймати Гайбраша. \InputFile Перший рядок входу містить єдине ціле число - кількість тестових випадків. Далі йдуть рядки даних для тестових випадків. Кожен тест починається з рядка, що містить два цілих числа \textbf{R} та \textbf{C} (4 <= \textbf{R}, \textbf{C} <= 30), які позначають кількість рядків та стовпців мапи таємничого острову відповідно. Далі йде \textbf{R} рядків, кожен з яких містить \textbf{C} символів самої мапи. Є унікальні помітки "\textbf{g}", "\textbf{l}" та "\textbf{e}" на мапі. Пусті ділянки без скель позначаються символом пропуску. Всі ділянки, розміщені біля довільної межі мапи, заповнені скелями. \OutputFile Для кожного тесту потрібно вивести єдиний рядок. Якщо існує, по меншій мірі, хоча б один безпечний шлях для тестового випадку, потрібно вивести слово "\textbf{YES}", і слово "\textbf{NO}", якщо такого шляху немає. Вважається, що якщо існує безпечний шлях, то для його проходження потрібно не більш ніж 1000 одиниць часу для Гайбраша.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #2
1
6 7
RRRRRRR
R e   R
R     R
R RRR R
R gRl R
RRRRRRR
Вихідні дані #2
YES