Назви перехресть#7028

Назви перехресть

1 секунда
64 мегабайти
Дуже легка

Місто Кіото відоме своїм китайським планом: його вулиці пролягають або з півночі на південь, або зі сходу на захід. Деякі з них пронумеровані, але більшість мають власні назви.

Перехрестя називаються за іменами вулиць, які перетинаються в ньому. Наприклад, Каварамачі-Сандзе — це перетин вулиць Каварамачі та Сандзе. Проте виникає питання: яке ім'я має бути першим? На перший погляд, це може здаватися неважливим: хтось каже Каварамачі-Сандзе (спочатку північ-південь), а хтось — Сандзе-Каварамачі (спочатку схід-захід). Але з досвідом розумієш, що порядок важливий. Наприклад, Сідзе "сильніша" за Каварамачі, яка, в свою чергу, "сильніша" за Сандзе. Цей порядок можна використовувати для назв перехресть.

На вхід подається список відомих назв перехресть X-Y. Вулиці мають напрямок північ-південь або схід-захід, і перетинатися можуть лише ортогональні вулиці.

Оскільки ваш список не повний, ви хочете його доповнити, використовуючи такі правила:

Дві вулиці A і B мають однакову "силу", якщо виконуються умови () - ():

  1. Вони обидві перетинають третю вулицю C з вхідних даних.

  2. Не існує такої вулиці D, що D-A і B-D присутні у вхідних даних.

  3. Не існує такої вулиці E, що A-E і E-B присутні у вхідних даних.

Використовуємо це визначення для розширення відношення "сильніший":

Вам потрібно визначити, чи є задані імена перехресть X-Y допустимими. Відповідь має бути ствердною, якщо ви можете довести допустимість імені, і негативною, якщо не можете. А саме:

Вхідні дані

Складаються з кількох тестів у форматі:

n
Crossing[1]
...
Crossing[n]
m
Question[1]
...
Question[m]

Перехрестя та запити мають вигляд:

X-Y

де X і Y — рядки з літер і цифр довжиною не більше . Рядки не містять пробілів, регістр літер важливий.

і знаходяться в межах від до включно, у кожному тесті не більше вулиць.

Останній рядок містить нуль.

Вихідні дані

Для кожного тесту вивести m + 1 рядок. У першому рядку вказати кількість вулиць у місті, а потім відповіді на запитання — або YES, або NO.

Приклади

Приклад 1

Loading
Loading