久莲是一個喜歡出題的女孩子。
在今年的 World Final 結束以後,久莲特別喜歡計算幾何,於是她打算在 NOI 的考場上也出一個計算幾何:這是一道只有題目名字和計算幾何相關的題目。
首先,久莲給出了一棵 $n$($n\ge2$)個節點的有根樹 $T$,根節點編號為 $1$。定義葉節點為除了根以外所有度數恰好為 $1$ 的節點。下圖是一個樹 $T$ 的例子,其中葉節點集合為 $\{3,4,5\}$。
接著透過這棵樹,久莲構造了一個序列 $A$:
- 從根節點開始深度優先走訪整棵樹,走訪時按照編號從小到大的順序來存取子節點,這樣可以得到一個樹 $T$ 的 DFS 序。
- 接著按照在 DFS 序中的出現順序從前往後,久莲把所有葉節點排成一排得到了一個序列 $A$。
更進一步地,透過序列 $A$,久莲定義了兩個葉節點 $u,v$ 的距離 $d(u,v)$:假設 $u$ 在 $A$ 中是第 $i$ 個元素,$v$ 是第 $j$ 個元素,則 $d(u,v)=\min(|i-j|,|A|-|i-j|)$。其中 $|A|$ 為序列的長度,即 $T$ 的葉子個數,$i,j$ 指的是出現的位置,從 $1$ 開始計數。
上面的例子中,序列 $A$ 為 $[4,5,3]$,其中 $d(3,5)=d(3,4)=d(4,5)=1$,$3,4,5$ 的出現位置分別為 $3,1,2$。
最後,久莲給出了一個參數 $K$,利用這棵有根樹 $T$ 和序列 $A$,我們可以構造一張 $n$ 個點的無重邊無自環的無向圖 $G$:兩個不同的點 $u,v$ 之間有邊當且僅當它們滿足下列條件中的至少一個:
- 在樹 $T$ 中存在連接 $u,v$ 的邊。
- 在樹 $T$ 中 $u,v$ 都是葉節點且 $d(u,v)\le K$。
當 $K=1$ 或 $2$ 時,上面的例子得到的圖 $G$ 都如下圖所示:
現在久莲想讓你來計算一下 $G$ 中不同的哈密頓迴路數量有多少條,答案可能很大,請對 $998244353$ 取模後輸出。
下面是一些補充定義:
- 無重邊無自環的無向圖 $G$ 的一條哈密頓迴路 $H$ 是 $G$ 中邊的一個子集,其中每一個點恰好有兩條不同的相鄰邊在 $H$ 中,且任意兩個點都可以透過 $H$ 中的邊直接或間接到達。
- 無重邊無自環的無向圖 $G$ 的兩條哈密頓迴路 $H_1,H_2$ 是不同的當且僅當存在一條邊 $e$ 使得 $e$ 在 $H_1$ 中且不在 $H_2$ 中。
輸入格式
從檔案 polygon.in 中讀入資料。
第一行輸入兩個整數 $n,K$,表示樹 $T$ 的點數以及久莲選定的參數 $K$。
第二行輸入 $n-1$ 個整數 $f_i$($1\le f_i\le i$),其中 $f_i$ 表示樹 $T$ 上存在邊 $(f_i,i+1)$。
輸出格式
輸出到檔案 polygon.out 中。
輸出一行一個整數,表示哈密頓迴路數量對 $998244353$ 取模後的結果。
範例
輸入格式 1
5 1 1 1 2 2
輸出格式 1
2
說明
該範例和題面中的例子完全相同。兩條哈密頓迴路經過節點的順序分別為 $(1,2,4,5,3)$ 和 $(1,2,5,4,3)$。
子任務
各測試點的資料規模和性質如下表:
| 編號 | $n$ | $K$ | 特殊性質 | 編號 | $n$ | $K$ | 特殊性質 |
|---|---|---|---|---|---|---|---|
| $1$ | $\le5$ | $\le3$ | 無 | $11$ | $\le1000$ | $\le2$ | A |
| $2$ | $\le10$ | $12$ | |||||
| $3$ | $\le15$ | $13$ | |||||
| $4$ | $\le20$ | $14$ | 無 | ||||
| $5$ | $\le1000$ | $=1$ | A | $15$ | |||
| $6$ | $16$ | ||||||
| $7$ | $17$ | $\le3$ | A | ||||
| $8$ | 無 | $18$ | |||||
| $9$ | $19$ | 無 | |||||
| $10$ | $20$ |
其中性質 A 為保證樹上所有節點至多有兩個子節點。
對於所有的資料,保證 $1\le f_i\le i$,$2\le n\le1000$。