У программиста Ксюши есть дерево, состоящее из n вершин. Будем считать, что вершины дерева пронумерованы от 1 до n. Также будем считать, что первоначально вершина номер 1 покрашена в красный цвет, а остальные вершины покрашены в синий цвет.
Расстоянием между двумя вершинами дерева v и u будем называть количество ребер в кратчайшем пути между v и u.
Ксюше нужно научиться быстро выполнять запросы двух видов:
- покрасить заданную синюю вершину в красный цвет;
- посчитать, какая красная вершина ближе всего к заданной и вывести кратчайшее расстояние до ближайшей красной вершины.
Ваша задача — написать программу, которая будет выполнять описанные запросы.
Выходные данные
Для каждого запроса второго типа выведите ответ на отдельной строке.
| № | Входные данные | Выходные данные |
|
1
|
5 4
1 2
2 3
2 4
4 5
2 1
2 5
1 2
2 5
|
0
3
2
|