Судиславль потерпає від жахливих заторів, і ситуація з кожним роком погіршується. У відповідь міська влада вирішила зробити всі вулиці односторонніми, щоб вирішити проблему. Проте без належного планування існує ризик того, що деякі частини міста стануть недоступними одна для одної. Для цього Міністерство транспорту склало список пар перехресть, які мають залишатися з'єднаними після впровадження змін.
Ваше завдання — написати програму, яка призначає напрямки на всіх вулицях міста так, щоб усі вимоги щодо з'єднаності були виконані.
Перший рядок містить три цілих числа , і (1 \le n \le 50000, 0 \le m, k \le 200000) — кількість перехресть у місті, вулиць і вимог щодо з'єднаності відповідно. Перехрестя пронумеровані від до . Далі рядків містять по два числа a_i, b_i (1 \le a_i, b_i \le n, a_i \ne b_i) — опис однієї вулиці. Спочатку всі вулиці двосторонні. Між будь-якою парою перехресть може бути не більше однієї вулиці. Наступні рядків містять вимоги щодо з'єднаності: кожен рядок містить два числа p_i, q_i (1 \le p_i, q_i \le n, p_i \ne q_i), що означає: після змін має існувати шлях з p_i у q_i.
У першому рядку виведіть YES або NO — чи можна всі вулиці направити так, щоб виконати всі вимоги. Якщо таке можливо, виведіть ще рядків: у -му рядку два числа c_i, d_i — напрямок -ї вулиці у вхідних даних (тобто рух має здійснюватися від c_i до d_i). Порядок вулиць має співпадати з порядком у вхідних даних. Якщо існує кілька рішень, виведіть будь-яке з них.
Приклад 1