Дано дерево (связный граф без циклов) с $N$ вершинами. Вершины пронумерованы от $1$ до $N$, каждая вершина окрашена в чёрный или белый цвет.
Напишите программу, обрабатывающую следующие запросы:
- $X$ : изменить цвет вершины $X$ (белый $\to$ чёрный, чёрный $\to$ белый). После этого выведите сумму уровней LCA (наименьшего общего предка) для всех различных пар белых вершин $(a, b)$.
Корнем является вершина $1$. Уровень корня равен $0$, уровень остальных вершин определяется как (уровень родителя) $+ 1$.
Входные данные
В первой строке заданы количество вершин $N$ и количество запросов $Q$.
Во второй строке заданы целые числа $t_1, t_2, \cdots, t_N$, обозначающие цвета вершин $1, 2, \cdots, N$. Для каждого $i$ ($1 \le i \le N$), $t_i = 0$ означает чёрный цвет, $t_i = 1$ — белый.
В третьей строке заданы натуральные числа $P_2, P_3, \cdots, P_N$ — родительские вершины для вершин $2, 3, \cdots, N$.
В следующих $Q$ строках заданы запросы $X$.
Выходные данные
В первой строке выведите ответ для начального состояния.
Далее, начиная со второй строки, выведите $Q$ строк — ответы на каждый запрос.
Примеры
Входные данные 1
5 5 1 0 0 1 1 1 1 3 2 5 3 5 4 2
Выходные данные 1
0 0 1 1 0 1
Входные данные 2
10 10 1 0 0 1 1 0 1 0 1 0 1 2 1 4 5 6 1 4 1 8 4 4 4 10 9 2 1 5 3
Выходные данные 2
7 7 4 7 4 4 2 2 2 0 1
Входные данные 3
20 20 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 2 3 4 2 2 1 3 2 4 4 3 3 3 8 14 11 7 7 5 12 19 5 10 18 17 13 10 5 5 13 10 4 11 8 14 13 19 15
Выходные данные 3
26 16 26 21 33 39 26 38 51 44 31 44 32 38 53 71 71 55 70 79 97