Для визначення маршрутів руху мережевих пакетів у сучасних мережах використовуються спеціальні пристрої — маршрутизатори. У своїх діях маршрутизатор керується таблицею маршрутизації. Така таблиця являє набір рядків, які описують маршрути. Кожен рядок містить 3 поля — D, M і G, де D — IP-адреса мережі призначення, M — маска, G — IP-адреса шлюзу (відмітимо для точності, що у реальних таблицях полів більше). Наприклад, рядок 192.168.24.0 255.255.255.0 192.168.14.1 означає, що пакет, адресований у мережу 192.168.24.0 з маскою 255.255.255.0, потрібно відправляти через шлюз 192.168.14.1.
Коратка довідка. IP-адреса являє собою 32-бітне число. Для зручності вона записується у десятково-крапковому форматі, тобто кожен байт подається у десятковому вигляді, а між ними ставляться крапки. Наприклад, запис 192.168.24.0 означає двійкове число 11000000101010000001100000000000. Це ж часе вірно і для масок. У масок є важлива особливість: у двійковому поданні маски завжди спочатку йдуть лише одиниці, а потім — лише нулі. Адреса шлюзу не може складатись цілком з нульових або одиничних бітів.
Алгоритм вибору маршруту виглядає так. Нехай є пакет, адресований на адресу A. Спочатку маршрутизатор проглядає всі записи і залишає лише ті, де виконується умова D and M = A and M (and — операція побітового "І"). Потім вже з цих записів залишається той, де кількість одиничних бітів у масці максимальна — він і буде результатом. Гарантується, що для довільної адреси таких записів завжди буде не більше однієї.
Чим більший розмір таблиці, тим повільніше маршрутизатор працює і більше ресурсів спживає. Але у багатьох випадках задану таблицю можна претврити у еквівалентну їй, але таку, що містить менше рядків.
Наприклад, нехай перша таблиця виглядає так:
192.168.0.0 255.255.255.0 192.168.14.1
192.168.1.0 255.255.255.0 192.168.14.1
192.168.2.0 255.255.255.0 192.168.14.2
192.168.3.0 255.255.255.0 192.168.14.2
Друга таблиця виглядає так:
192.168.0.0 255.255.252.0 192.168.14.1
192.168.2.0 255.255.254.0 192.168.14.2
Неважко переконатись, що для довільної адреси призначення за цими двома таблицями визначиться один і той же шлюз (або ніякий не визначиться). Відмітимо, що у даній задачі адресою призначення може бути довільне 32-бітне число (тбто немає спеціальних і недопустимих адрес, як у реальних мережах).
Таблиці великого розміру порівнювати вручну досить громіздко. Від вас вимагається написати програму для перевірки еквівалентності двох заданих таблиць.
У першому рядку вхідного файлу записано ціле число N (від 1 до 100 000) — кількість записів у першій таблиці маршрутизації. Наступні N рядків містять таблицю маршрутизації в описаному вище форматі. Потім записано ціле число M (від 1 до 100 000) — кількість записів у другій таблиці. Наступні M рядків містять другу таблицю маршрутизації.
У першому рядку вихідного файлу виведіть слово YES або NO.