Нагадаємо умову задачі Tetris:
У грі Tetris зв'язані фігури (з'єднані, якщо можуть переміщуватися у чотирьох напрямках) падають у колодязь з рядками і стовпцями. Кожна фігура представлена унікальною буквою англійського алфавіту від "A" до "Z". Під час падіння фігури не можна переміщувати чи обертати. Ваша програма має визначити послідовність, у якій падали блоки, за описом колодязя.
Перший рядок вхідного файлу містить одне ціле число (0 \leq N \leq 50) — кількість рядків у колодязі. Кожен з наступних рядків містить символів, кожен із яких є або буквою від "A" до "Z", або символом "." (ASCII ), що позначає порожню клітинку.
Вам потрібно написати валідатор тестів для цієї задачі.
Вхідний файл містить кілька тестів. Кожен тест подано у такому форматі:
Число (1 \leq N \leq 50) та рядків по символів кожен.
Символи можуть мати ASCII-коди від до .
Сума по всіх тестах не перевищує .
Для кожного тесту виведіть YES або NO — чи є тест валідним.
Тест вважається валідним, якщо виконуються всі наступні умови:
Використовуються лише символи "A..Z" та ".".
Фігура (тобто набір усіх клітинок з однією буквою) створює зв'язану область.
Жодна фігура не "висить у повітрі".
Фігури дійсно могли впасти в такому порядку.
Приклад 1