#include using namespace std; #include using mint = atcoder::modint998244353; int main(){ int N; cin >> N; vector pare(N); for (int i = 1; i < N; i++) cin >> pare[i], pare[i]--; assert(N <= 6); set> s; vector B(N); auto f = [&](auto self, int var) -> void { if (var == N){ vector A(N); vector> m(N); for (int i = N - 1; i >= 0; i--){ m[i].insert(B[i]); if (i) for (auto x : m[i]) m[pare[i]].insert(x); while (m[i].count(A[i])) A[i]++; } s.insert(A); return; } for (int i = 0; i <= N; i++){ B[var] = i; self(self, var + 1); } }; f(f, 0); cout << s.size() << "\n"; }