eolymp
bolt
Try our new interface for solving problems
Problems

Дерево в отрезке

Дерево в отрезке

Задано подвешенное дерево, содержащее n (1n300000) вершин. Каждая вершина покрашена в один из n цветов. Требуется для каждой вершины v вычислить количество вершин с цветами в m (1m10) отрезках-запросах li, ri, встречающихся в поддереве с корнем v. Вершина лежит в отрезке, если номер её цвета c (licri).

Input

В первой строке задано числа n и m. Последующие n строк описывают вершины, по одной в строке. Описание очередной вершины i имеет вид pici, где pi - номер родителя вершины i, а ci - цвет вершины i (1cin). Для корня дерева pi = 0.

Следующие m строк содержат запросы в формате двух чисел li, ri (1lirin).

Output

Выведите n строк по m чисел, обозначающих количества цветов в поддеревьях с корнями в вершинах 1, ..., n в соответствующих отрезках.

Time limit 2 seconds
Memory limit 256 MiB
Input example #1
5 2
2 1
3 2
0 3
3 3
2 1
1 5
2 3
Output example #1
1 0
3 1
5 3
1 1
1 0
Input example #2
1 1
0 1
1 1
Output example #2
1
Input example #3
2 1
0 1
1 1
1 1
Output example #3
2
1
Input example #4
2 3
0 1
1 2
1 1
2 2
1 2
Output example #4
1 1 2
0 1 1