#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <vector>
using namespace std;
const int Maxn = 100010;
vector <int> vec[Maxn];
int n, ans, K;
int md[Maxn];
int _max(int x, int y) { return x > y ? x : y; }
void dfs(int x) {
	int sz = vec[x].size();
	md[x] = 1;
	for(int i = 0; i < sz; i++){
		int y = vec[x][i];
		dfs(y);
		if(x != 1 && md[y] == K) ans++;
		else md[x] = _max(md[x], md[y]+1);
	}
}
int main() {
	int i, j, k;
	scanf("%d%d", &n, &K);
	int x;
	scanf("%d", &x);
	if(x != 1) ans = 1;
	for(i = 2; i <= n; i++){
		scanf("%d", &x);
		vec[x].push_back(i);
	}
	dfs(1);
	printf("%d\n", ans);
	return 0;
}