Вам дано дерево с \(n\) вершинами. Дерево подвешено за вершину \(1\), которая не считается листом не зависимо от ее степени.
Каждый лист покрашен в один из двух цветов: красный или синий. Листовая вершина с номером \(v\) исходно имеет цвет \(s_{v}\).
Цвет каждой из внутренней вершины (включая корень) определятся следующим образом.
- Обозначим за \(b\) количество синих непосредственных детей, и за \(r\) количество красных непосредственных детей данной вершины.
- Тогда цвет этой вершины синий тогда и только тогда, когда \(b - r \ge k\), иначе он красный.
Число \(k\) это параметр, одинаковый для всех вершин.
Вам необходимо обработать запросы следующих типов:
- 1 v: вывести цвет вершины \(v\);
- 2 v c: изменить цвет листа \(v\) на \(c\) (\(c = 0\) означает красный, \(c = 1\) означает синий);
- 3 h: изменить текущее значение \(k\) на \(h\).
Выходные данные
Для каждого запроса первого типа выведите \(0\), если цвет вершины \(v\) красный, и \(1\) иначе.
Примечание
(i) Исходное дерево
(ii) Дерево после 3-го запроса
(iii) Дерево после 7-го запроса
| № | Входные данные | Выходные данные |
|
1
|
5 2
1 2
1 3
2 4
2 5
-1 -1 0 1 0
9
1 1
1 2
3 -2
1 1
1 2
3 1
2 5 1
1 1
1 2
|
0
0
1
1
0
1
|