#include "september.h"
#include <vector>
#include <bits/stdc++.h>
using namespace std;
bool vis[20004];
int cnt[20005];
set <int> s;
vector <int> adj[20005];
void dfs(int cur){
if(vis[cur])return;
vis[cur] = 1;
s.insert(cur);
for(auto it : adj[cur]){
if(vis[it])continue;
dfs(it);
}
}
typedef pair <int, int> pii;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
for(int i = 1 ; i < N ; i++)adj[F[i]].push_back(i);
int ans = 0, day = 0;
while(day < N - 1){
do{
for(int i = 0 ; i < M ; i++){
cnt[S[i][day]]++;
dfs(S[i][day]);
if(cnt[S[i][day]] == M)s.erase(S[i][day]);
}
day++;
}while(s.size());
ans++;
}
s.clear();
for(int i = 0 ; i < N ; i++){
adj[i].clear();
vis[i] = 0;
cnt[i] = 0;
}
return ans;
}