在某家不便透露名称的机构中,上下级关系可以用一棵树来表示——除了最高领导外,每位员工都有唯一的直接上级。此外,员工按入职顺序编号,由于严格的资历规则,上级的编号总是小于其所有下属的编号。
董事会担心有破坏者潜入机构并引发叛乱。为了防止这种情况,董事会急于通过提供各种奖金、活动和桌上足球来保持员工的高昂士气。整个团队的士气由一个 $0$ 到 $1$ 之间的实数 $x$ 表示。如果任何员工意识到其下属(包括间接下属)中至少有 $x$ 的比例参与了叛乱,他们就会(出于信念或恐惧)加入叛乱,并强迫其所有下属也这样做。董事会预料到了最坏的情况:破坏者实际上已经在员工之中,但尚未暴露真实身份。当他们暴露时,他们将是第一个叛乱的人,但不会强迫其下属跟随。
董事会想知道,为了将潜在的叛乱限制在最多 $k$ 名员工以内,他们必须维持的最低士气是多少,因为他们认为这种小规模的叛乱很容易控制。请编写一个程序来为他们提供答案。
输入格式
标准输入的第一行包含两个整数 $n$ 和 $k$ ($1 \le k \le n \le 500\,000$),由一个空格分隔,分别表示机构员工人数和可以承受的叛乱员工人数上限。员工编号为 $1$ 到 $n$,最高领导的编号为 $1$。接下来的 $n-1$ 行指定了机构的结构:第 $i$ 行包含一个整数 $p_i$ ($p_i \le i$),表示员工 $i+1$ 的上级是员工 $p_i$。
输出格式
标准输出的第一行应包含一个实数,即董事会寻求的足够士气。与真实值误差不超过 $10^{-6}$ 的结果将被视为正确。
样例
输入格式 1
9 3 1 1 2 2 2 3 7 3
输出格式 1
0.6666666667
说明
对于该样例:如果士气降至 $\frac{2}{3}$ 以下,那么如果 8 号员工是破坏者,将有 4 名员工叛乱,即:3、7、8 和 9 号。
子任务
测试集由以下子任务组成。每个子任务内可能包含多个测试组。
| 子任务 | 属性 | 分值 |
|---|---|---|
| 1 | $n \le 10$ | 22 |
| 2 | $n \le 1000$ | 10 |
| 3 | $k \le 20$ | 13 |
| 4 | 无额外属性 | 55 |
注意:我们建议使用浮点类型 double 来存储结果。