久莲 es una chica a la que le gusta crear problemas.
Después de la World Final de este año, 久莲 se ha aficionado especialmente a la geometría computacional. Por eso ha decidido proponer también un problema de geometría computacional en la NOI: un problema cuyo único vínculo con la geometría computacional es su nombre.
Primero, 久莲 da un árbol enraizado $T$ de $n$ nodos ($n\ge2$), cuya raíz es el nodo $1$. Se define como hojas a todos los nodos de grado exactamente $1$, excepto la raíz. La siguiente figura muestra un ejemplo de árbol $T$, cuyo conjunto de hojas es $\{3,4,5\}$.
A continuación, 久莲 construye una secuencia $A$ a partir del árbol:
- Recorre todo el árbol en profundidad desde la raíz, visitando los hijos en orden creciente de sus números. Así obtiene un orden DFS del árbol $T$.
- Después, coloca todas las hojas en una fila, según su orden de aparición en el recorrido DFS, para obtener la secuencia $A$.
Mediante $A$, 久莲 define además la distancia $d(u,v)$ entre dos hojas $u,v$: si $u$ es el elemento $i$ de $A$ y $v$ es el elemento $j$, entonces $d(u,v)=\min(|i-j|,|A|-|i-j|)$. Aquí, $|A|$ es la longitud de la secuencia, es decir, el número de hojas de $T$; $i,j$ son las posiciones de aparición, numeradas desde $1$.
En el ejemplo anterior, $A=[4,5,3]$ y $d(3,5)=d(3,4)=d(4,5)=1$. Las posiciones de $3,4,5$ son respectivamente $3,1,2$.
Finalmente, 久莲 da un parámetro $K$. Con el árbol enraizado $T$ y la secuencia $A$, construimos un grafo no dirigido $G$ de $n$ vértices, sin aristas múltiples ni bucles: dos vértices distintos $u,v$ están unidos por una arista si y solo si cumplen al menos una de las condiciones siguientes:
- Existe una arista entre $u,v$ en el árbol $T$.
- $u,v$ son ambos hojas de $T$ y $d(u,v)\le K$.
Tanto para $K=1$ como para $K=2$, el grafo $G$ obtenido del ejemplo anterior es el de la siguiente figura:
Ahora 久莲 quiere que calcules cuántos ciclos hamiltonianos distintos hay en $G$. Como la respuesta puede ser muy grande, escribe su valor módulo $998244353$.
A continuación se dan algunas definiciones adicionales:
- Un ciclo hamiltoniano $H$ de un grafo no dirigido $G$ sin aristas múltiples ni bucles es un subconjunto de las aristas de $G$ en el que cada vértice tiene exactamente dos aristas incidentes distintas pertenecientes a $H$, y desde cualquier vértice se puede llegar a cualquier otro, directa o indirectamente, por aristas de $H$.
- Dos ciclos hamiltonianos $H_1,H_2$ de un grafo no dirigido $G$ sin aristas múltiples ni bucles son distintos si y solo si existe una arista $e$ que pertenece a $H_1$ y no pertenece a $H_2$.
Entrada
Los datos se leen del archivo polygon.in.
La primera línea contiene dos enteros $n,K$, que indican el número de vértices de $T$ y el parámetro $K$ elegido por 久莲.
La segunda línea contiene $n-1$ enteros $f_i$ ($1\le f_i\le i$), donde $f_i$ indica que el árbol $T$ tiene una arista $(f_i,i+1)$.
Salida
Escribe la salida en el archivo polygon.out.
Escribe una línea con un entero: el número de ciclos hamiltonianos, módulo $998244353$.
Ejemplos
Entrada 1
5 1 1 1 2 2
Salida 1
2
Nota
Este ejemplo coincide exactamente con el de la descripción. Los dos ciclos hamiltonianos recorren los nodos en los órdenes $(1,2,4,5,3)$ y $(1,2,5,4,3)$.
Subtareas
La siguiente tabla muestra los tamaños y las propiedades de los datos de cada punto de prueba:
| Número | $n$ | $K$ | Propiedad especial | Número | $n$ | $K$ | Propiedad especial |
|---|---|---|---|---|---|---|---|
| 1 | $\le5$ | $\le3$ | Ninguna | 11 | $\le1000$ | $\le2$ | A |
| 2 | $\le10$ | $\le3$ | Ninguna | 12 | $\le1000$ | $\le2$ | A |
| 3 | $\le15$ | $\le3$ | Ninguna | 13 | $\le1000$ | $\le2$ | A |
| 4 | $\le20$ | $\le3$ | Ninguna | 14 | $\le1000$ | $\le2$ | Ninguna |
| 5 | $\le1000$ | $=1$ | A | 15 | $\le1000$ | $\le2$ | Ninguna |
| 6 | $\le1000$ | $=1$ | A | 16 | $\le1000$ | $\le2$ | Ninguna |
| 7 | $\le1000$ | $=1$ | A | 17 | $\le1000$ | $\le3$ | A |
| 8 | $\le1000$ | $=1$ | Ninguna | 18 | $\le1000$ | $\le3$ | A |
| 9 | $\le1000$ | $=1$ | Ninguna | 19 | $\le1000$ | $\le3$ | Ninguna |
| 10 | $\le1000$ | $=1$ | Ninguna | 20 | $\le1000$ | $\le3$ | Ninguna |
La propiedad A garantiza que todos los nodos del árbol tienen como máximo dos hijos.
Para todos los datos, se garantiza que $1\le f_i\le i$ y $2\le n\le1000$.