#include "september.h"
#include <bits/stdc++.h>
int m, ans, k, s[100007], tem[100007], faa[100007];
std::vector<int> cn[100007];
void dfs(int cu){
s[cu] = 1;
for(int z: cn[cu]) dfs(z), s[cu] += s[z];
}
void ad(int cu, int add){
tem[cu] += add;
if(tem[cu] == s[cu]*m){
k++;
if(cu != 0) ad(faa[cu], tem[cu]);
}
}
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
int i, j, n = N;
m = M;
for( i = 0; i < n; i++) tem[i] = 0;
for( i = 1; i <= n-1; i++) cn[F[i]].push_back(i), faa[i] = F[i];
dfs(0);
for( i = 0, k = 0, ans = 0; i < n-1; i++){
for( j = 0; j < m; j++) ad(S[j][i], 1);
if(k == i+1) ans++;
}
for( i = 0; i < n; i++) cn[i].clear();
return ans;
}