#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]--; vector> dp(N, {0, 1}); for (int i = N - 1; i >= 0; i--){ for (int j = (int)(dp[i].size()) - 1; j > 0; j--){ dp[i][j - 1] += dp[i][j]; } if (i) dp[pare[i]] = atcoder::convolution(dp[i], dp[pare[i]]); } mint ans = 0; for (auto x : dp[0]) ans += x; cout << ans.val() << endl; }