Problem2816--Another Crisis

2816: Another Crisis

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 0  Solved: 0
[Status] [Submit] [Creator:]

Description

几年前,一场新的全球危机爆发,给许多人带来了经济问题。
某公司的一些工人正试图要求增加工资,公司有一个严格的等级制度,每个员工只有一个直接上司,公司的老板除外、他没有直接上司;非上司角色的员工被称为工人、其他员工和老板也都被称为上司。为了要求加薪,工人应该向直接上司申请;当然,每个上司要尽力说服下属让他们满意目前的收入,使公司利润最大化。然而,至少百分之T直接下属向其上司申请,上司会面临压力、别无选择、再向其上司申请,每个上司员工最多能向其上司申请一次,不管他下级有多少人申请。一个上级只登记他的直接下级(包括没有向其申请的下级)来计算申请比例,请注意,一个上司同时会有“工人”和“上司”两种直接下属,这样的上司会收到两种类型的申请书,不管哪种种类,在计算申请百分比时将被视为1。
当一份申请书一路送到公司老板手里时,所有员工工资都会增加。工人工会正拼命想实现这一目标,因此他们需要说服许多工人向他们的直接上司申请。
考虑到公司的层次结构和参数T,您必须找出最少需要多少工人申请才能让公司老板收到申请书。

Input

包含多组测试数据,每组测试数据包含两行:
第一行包含两个整数N和T(1<=N<=10^5,1<=T<=100),用一个空格分隔。N表示公司的员工人数(不包括所有者)和T是上文所描述的参数。
每个员工都由1到N之间的整数标识,所有者由数字0表示
第二行由单个空格分隔的整数列表。整数Bi(在该列表中的位置i,从1开始),表示员工i的直接上司的身份(0<=Bi<=i)
当输入为"0 0"时表示输入结束。

Output

对于每个测试用例,输出一个单行的整数,表示最少需要多少工人申请,才能让公司老板收到申请书。

Sample Input Copy

3 100
0 0 0
3 50
0 0 0
14 60
0 0 1 1 2 2 2 5 7 5 7 5 7 5
0 0

Sample Output Copy

3
2
5

Source/Category