#CF1918F. 树上的毛毛虫

树上的毛毛虫

F. 树上的毛毛虫

时间限制:每个测试 22
内存限制:每个测试 256256 MB

毛毛虫决定访问树上的每一个节点。最初,它位于根节点。

树以根为节点 11 的有根树形式给出。每次爬到相邻节点需要花费 11 分钟。

树下方有一张蹦床。如果毛毛虫脱离树木落到蹦床上,它将在 00 秒内回到树的根节点。但蹦床已经老旧,最多只能承受 kk 次毛毛虫的坠落。

毛毛虫访问树上所有节点所需的最短时间是多少?

更形式化地说,我们需要找到访问树上所有节点所需的最短时间,毛毛虫从根节点(节点 11)出发,可以使用两种方式移动。

  1. 沿着一条边爬行到一个相邻节点:耗时 11 分钟。
  2. 传送回根节点:不消耗时间,但不会访问新节点。

第二种方式(传送)最多可以使用 kk 次。毛毛虫可以在任意节点结束旅程。

输入

第一行包含两个整数:nn2n21052 \le n \le 2 \cdot 10^5)——树的节点数,以及 kk0k1090 \le k \le 10^9)——传送回根节点的最大次数。

第二行包含 n1n-1 个整数 p2,p3,,pnp_2, p_3, \dots, p_n1pin1 \le p_i \le n)——节点 2,3,,n2,3,\dots,n 在树中的父节点;节点 11 是根节点。

输出

输出一行一个整数——访问树上所有节点所需的最少分钟数。

样例

输入

8 1
1 1 2 2 4 3 3

输出

9

输入

4 0
4 4 1

输出

4