Розрізання графа
Задано неорієнтовний граф. Над ним у заданом порядку виконуються операції наступних двох типів:
cut — розрізати граф, тобто видалити з нього ребро;
ask — перевірити, чи лежать дві вершини графа у одній компоненті зв'язності.
Відомо, що після виконання усіх операцій типу cut ребер в графі не залишилось. Знайдіть результат виконання кожної з операцій типу ask.
Вхідні дані
Перший рядок містить три цілих числа, відокремлені пропусками — кількість вершин графа , кількість ребер та кількість операцій .
Наступні рядків задають ребра графа; -й з цих рядків містить два числа та — номери кінців i-го ребра. Вершини нумеруються з одиниці; граф не містить кратних ребер та петель.
Далі йде рядків, які описують операції. Операція типу cut задається рядком "cut u v" , який означає. що з графа видаляють ребро між вершинами та . Операція типу ask задається рядком "ask u v" , який означає, що необхідно взнати, чи лежать у даний момент вершини та в одній компоненті зв'язності. Гарантується, що кожне ребро графа зустрінеться в операціях типу cut рівно один раз.
Вихідні дані
Для кожної операції ask виведіть у окремому рядку слово "YES", якщо дві вказані вершини лежать у одній компоненті зв'язності, і "NO" у протилежному випадку. Порядок відповідей повинен відповідати порядку операцій ask у вхідних даних.