在 Joshua 识破了 Alexander 企图伪造雪花照片(参见 https://open.kattis.com/problems/falskflinga )的诡计之后,Alexander 变得充满怨恨并对雪产生了执念。他想出了一个邪恶的终极计划,这可能会置 Joshua 于死地,而计划的第一步就是邀请他去滑雪。
现在,他们一起身处一个巨大的滑雪系统中,该系统包含 $N$ 个编号为 $1$ 到 $N$ 的滑雪村庄。这些村庄由 $N - 1$ 条单向滑雪坡道连接。滑雪系统的顶部是 $1$ 号村庄,从那里出发,可以通过向下一条或多条滑雪坡道到达其他所有村庄。其余的每个村庄都恰好有一条坡道导入。
Alexander 邪恶终极计划的第二步是在滑雪系统中制造一场雪崩。他计划通过在其中一个村庄制造巨大的噪音来实现这一目标。该村庄的积雪随后将沿着所有从该村庄出发的坡道滚落。积雪将尽可能远地向所有下方方向持续滚落。雪崩造成的伤害是受影响的村庄数量。
Joshua 注意到 Alexander 似乎有些神志不清,并看穿了 Alexander 的邪恶计划。众所周知,Joshua 动手能力极强,他可以选择一些村庄并在其中建造防护墙。在某个村庄建造防护墙可以阻止雪崩波及该村庄。Alexander 无法从建有防护墙的滑雪村庄发起雪崩。
但时间紧迫,在向其他滑雪者发出即将发生危险的警告后,Joshua 仅有时间在 $K$ 个不同的村庄中建造防护墙。Joshua 不知道 Alexander 会在哪个村庄制造噪音,但他希望最小化受影响的村庄数量。
首先,Joshua 将建造这 $K$ 面防护墙,以使 Alexander 所能造成的最大伤害最小化。然后,Alexander 会在能造成最大可能伤害的村庄制造噪音。你的任务是计算该伤害,即受雪崩影响的村庄数量。
输入格式
输入的第一行包含两个整数 $N$ 和 $K$($1 \le K < N \le 10^5$),分别表示滑雪系统中的村庄数量以及 Joshua 可以建造的防护墙数量。
接下来的一行包含 $N - 1$ 个整数 $a_1, a_2, \dots, a_{N-1}$,其中 $1 \le a_i \le i$。对于每个 $i = 1, 2, \dots, N - 1$,存在一条从编号为 $a_i$ 的村庄到编号为 $i + 1$ 的村庄的单向滑雪坡道。
输出格式
输出一个整数:在 Joshua 以最优方式建造防护墙的情况下,Alexander 所能造成的最大伤害。
子任务
你的解法将在多个测试点组上进行测试。要获得某个组的分数,必须通过该组中的所有测试用例。
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 10 | 对于所有 $1 \le i \le N - 1$,满足 $a_i = i$ |
| 2 | 10 | $K = 1, N \le 1000$ |
| 3 | 10 | $N \le 20$ |
| 4 | 15 | $K = 1$ |
| 5 | 25 | $N \le 1000$ |
| 6 | 30 | 无附加限制 |
样例
输入样例 1
5 2 1 2 1 1
输出样例 1
1
输入样例 2
7 1 1 1 2 2 3 3
输出样例 2
3
输入样例 3
7 2 1 2 2 4 1 6
输出样例 3
2