Операції на графі
У задачі необхідно створити неорієнтовний граф, на якому підтримуються наступні операції:
AddEdge(u, v) - додати в граф ребро між вершинами (u, v);
Vertex(u) - вивести список вершин, суміжних з вершиною u.
Петлі і кратні ребра у графі відсутні.
Вхідні дані
Перший рядок містить кількість вершин n (1 ≤ n ≤ 10^5
) у графі. У наступному рядку знаходиться кількість операцій k (0 ≤ k ≤ 10^6
). Кожний з наступних рядків задає операцію у форматі: "1 <число> <число>" або "2 <число>", які позначають відповідно операції AddEdge(u, v) і Vertex(u).
Гарантується, що сумарна кількість чисел, які необхідно вивести при виконанні усіх операцій Vertex, не перевищує 2 * 10^5
.
Вихідні дані
Для кожної команди Vertex вивести в окремому рядку вивести список суміжних вершин вказаної вершини. Вершини списку суміжності можна виводити у довільному порядку. Якщо для вказаної вершини суміжних немає, то слід вивести порожній рядок.