#P5686. 产奶比赛

产奶比赛

题目描述

约翰的N(1{N(1≤}N{N≤}500){500)}头奶牛打算组队去参加一个世界级的产奶比赛(MultistateMilkingMatchup{(Multistate Milking Match-up,}缩写为MMM){MMM)}.她们很清楚其他队 的实力,也就是说,她们派出的队只要能产出至少X(1{X(1≤}X{X≤}1000000){1000000)}加仑牛奶,就能赢得这场比赛.每头牛都能为集体贡献一定量的牛奶,数值在10000{-10000}10000{10000}之间(有些奶牛总是想弄翻装着其他奶牛产的奶的瓶子).

MMM{MMM}的举办目的之一,是通过竞赛中的合作来增进家庭成员之间的默契.奶牛们认为她们总是能赢得这场比赛,但为了表示对比赛精神的支持,她们希望在选出的队伍里能有最多对的牛来自同一个家庭,也就是说,有最多对的牛有直系血缘关系(当然,这支队伍必须能产出至少X{X}加仑牛奶).

当然了,所有的奶牛都是女性,所以队伍里所有直系血亲都是母女关系.约翰熟知所有奶牛之间的血缘关系.现在他想知道,如果在保证一支队伍能赢得比赛的情况下,队伍中最 多能存在多少对血缘关系.

注意,如果一支队伍由某头奶牛和她的母亲、她的外祖母组成,那这支队伍里一共有2{2}对血缘关系(这头奶牛外祖母与她的母亲,以及她与她的母亲).

输入格式

1{1}行:两个用空格隔开的整数N{N}X.{X.}

2{2}N+1{N+1}行:每行包括两个用空格隔开的整数,第一个数为一只奶牛能贡献出的牛奶的加仑数,第二个数表示她的母亲的编号.

如果她的母亲不在整个牛群里,那第二个数为0{0}.并且,血缘信息不会出现循环,也就是说一头奶牛不会是自己的母亲或祖母,或者更高代的祖先.

输出格式

输出在一个能获胜的队伍中,最多可能存在的有血缘关系的牛的对数.如果任何一支队伍都不可能获胜,输出1.{-1.}

样例

输入样例

5 8
-1 0  
3 1
5 1
-3 3
2 0

输出样例

2

提示

输入详细信息:

5{5}头牛。奶牛一号可以生产1{-1}加仑,并且有两个女儿,奶牛2{2}3{3,}他们分别可以生产3{3}加仑和5{5}加仑。奶牛3{3}有一个女儿(4{4}头牛),可以生产3{-3}加仑。然后是5{5}号奶牛,谁能生产2{2}加仑。

约翰一共有5{5}头奶牛.第1{1}头奶牛能提供1{-1}加仑的牛奶,且她是第2{2}、第3{3}头奶牛的母亲.第2{2}、第3{3}头奶牛的产奶量务别为3{3}加仑和5{5}加仑.第4{4}头奶牛是第3{3}头奶牛的女儿,她能提供3{-3}加仑牛奶.还有与其他牛都没有关系的第5{5}头奶牛,她的产奶量是2{2}加仑.

最好的一支队伍包括第1{1,}2{2,}3{3,}5{5}头奶牛.她们一共能产出1{(-1)}+3+5+2=9{+3+5+2=9≥}8{8}加仑牛奶,

并且这支队伍里有2{2}对牛有血缘关系(12{1-2}13{1-3}).如果只选第2{2,}3{3,}5{5}头奶牛,虽然总产奶量会更高(10{10}加仑), 但这支队伍里包含的血缘关系的对数比上一种组合少(队伍里没有血缘关系对).