MOD = 998244353 n = int(input()) edges = [[] for _ in range(n)] for i in range(1, n): p = int(input()) - 1 edges[p].append(i) dist = [0] * n stack = [0] ans = 1 while stack: pos = stack.pop() for npos in edges[pos]: dist[npos] = dist[pos] + 1 ans *= dist[npos] ans %= MOD stack.append(npos) print(ans)