#include "september.h"
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define all(x) (x).begin(), (x).end()
using ll = int64_t;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
vector<int> vals;
vector<int> par = F;
vector<int> deg(N, 0);
for (int i = 1; i < N; i++) {
deg[i]++;
deg[F[i]]++;
}
for (int i = 1; i < N; i++)
deg[i]--;
for (int i = 0; i < M; i++) {
vector<int> Deg = deg;
set<int> s;
int days = 0;
for (int node : S[i]) {
if (Deg[node] == 0) {
while (1) {
if (par[node] == 0) break;
Deg[par[node]]--;
if (Deg[par[node]] > 0) break;
if (s.count(par[node])) s.erase(par[node]);
node = par[node];
}
} else {
s.insert(node);
}
if (s.empty())
days++;
}
vals.push_back(days);
}
return *min_element(all(vals));
}