Задача C. Биочипы

Автор:Жаутыковская олимпиада 2012   Ограничение времени:1 сек
Входной файл:input.txt   Ограничение памяти:512 Мб
Выходной файл:output.txt  
Максимальный балл:100  

Условие

Ученые нашли биочип, который при определенных условиях делится на несколько новых биочипов. При этом биочип-родитель прекращает свое существование. Биочипы-потомки обладают каджый своим объемом памяти. Далее биочип можно или использовать (запретив дальнейшее деление), или он будет делиться дальше по заранее известной схеме. Ученые составили древовидные схемы деления для разных биочипов и точно знают структуру дерева из N элементов, включая объем памяти каждого из потенциальных потомков. Им нужна программа, которая выберет из этого дерева ровно M биочипов, суммарный объем памяти которых максимален. Обратите внимание, что если мы выбираем какой-то биочип, то ни один из его предков или потомков не может быть выбран.

Формат входного файла

В первой строке входного файла находятся два целых числа N и M - количество элементов дерева и количество выбираемых биочипов. Следующие N строк содержат по два неотрицательных целых числа, разделенных пробелом: номер родителя в дереве и размер собственной памяти a[i]. Каждый биочип идентифицируется числом между 1 и N включительно, строка входного файла с номером i содержит информацию о биочипе с номером i − 1. Ровно один биочип не имеет родителя, в качестве номера его родителя записан 0. Входные данные таковы, что M биочипов выбрать можно.

Формат выходного файла

Выходной файл должен содержать одно целое число - максимально возможный суммарный объем памяти выбранных M биочипов.

Ограничения

1 ≤ N ≤ 200000. 1 ≤ M ≤ 500. 1 ≤ a[i] ≤ 1000

Примеры тестов

Входной файл (input.txt) Выходной файл (output.txt)
1
7 3
2 100
0 1000
2 150
3 100
3 5
5 100
2 50
                           
300 

0.990s 0.739s 13