/*
*看完题目有点懵,不懂可以看下面两篇文章,解答的很详细
*/
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n, L, maxn = 0;
int parent[110] = {0}, dp[210] = {0};
scanf ("%d %d", &n, &L);
for (int i=0; i<n-1; i++) {
scanf ("%d", &parent[i]);
}
for (int i=0; i<n-1; i++) {
dp[i+1] = dp[parent[i]] + 1;
maxn = max(maxn, dp[i+1]);
}
int d = min(L, maxn);
printf ("%d", min((n), 1 + d + (L-d)/2));
return 0;
}
/*
*https://blog.csdn.net/m0_37650263/article/details/77938968?locationNum=2&fps=1
*https://blog.csdn.net/m0_37885286/article/details/79488526
*/