#arc121e. [arc121_e]Directed Tree

[arc121_e]Directed Tree

問題文

11 から NN の番号がついた NN 頂点の有向木が与えられます。

頂点 11 はこの木の根です。 2leqileqN2 \\leq i \\leq N を満たす整数 ii について、頂点 pip_i から ii へ向かう有向辺が存在します。

aa(1,ldots,N)(1,\\ldots,N) を並び替えて得られる数列とします。また、aaii 番目の項を aia_i とします。

aa としてありうる数列は N!N! 通りあります。それらのうち、下記の条件を満たすものの個数を 998244353998244353 で割ったあまりを求めてください。

  • 条件:1leqileqN1 \\leq i \\leq N を満たす任意の整数 ii について、頂点 aia_i から 11 度以上辺を辿って頂点 ii へ到達することはできない。

制約

  • 与えられる入力は全て整数
  • 1leqNleq20001 \\leq N \\leq 2000
  • 1leqpi<i1 \\leq p_i < i

入力

入力は以下の形式で標準入力から与えられる。

NN p2p_{2} cdots\\cdots pNp_N

出力

(1,ldots,N)(1,\\ldots,N) の並び替え aa のうち、問題文中の条件を満たすものの個数を 998244353998244353 で割ったあまりを出力せよ。


入力例 1

4
1 1 3

出力例 1

4

入力例 2

30
1 1 3 1 5 1 1 1 8 9 7 3 11 11 15 14 4 10 11 12 1 10 13 11 7 23 8 12 18

出力例 2

746746186
  • 998244353998244353 で割ったあまりを出力するのを忘れずに。