Jiulian é uma garota que gosta de criar problemas.
Depois do World Final deste ano, Jiulian passou a gostar muito de geometria computacional. Por isso, decidiu propor um problema de geometria computacional na NOI: um problema cujo nome é a única parte relacionada à geometria computacional.
Primeiro, Jiulian fornece uma árvore enraizada $T$ com $n$ vértices ($n\ge2$), cuja raiz é o vértice $1$. Uma folha é definida como qualquer vértice de grau exatamente $1$, exceto a raiz. A figura abaixo mostra um exemplo de $T$, cujas folhas são $\{3,4,5\}$.
A partir dessa árvore, Jiulian constrói uma sequência $A$:
- Faz uma busca em profundidade em toda a árvore a partir da raiz, visitando os filhos em ordem crescente de seus números. Assim, obtém uma ordem DFS de $T$.
- Em seguida, dispõe todas as folhas numa sequência $A$, na ordem em que aparecem nessa ordem DFS.
Usando a sequência $A$, Jiulian define a distância $d(u,v)$ entre duas folhas $u,v$. Se $u$ é o $i$-ésimo elemento de $A$ e $v$ é o $j$-ésimo, então $d(u,v)=\min(|i-j|,|A|-|i-j|)$. Aqui, $|A|$ é o comprimento da sequência, isto é, o número de folhas de $T$, e $i,j$ são posições contadas a partir de $1$.
No exemplo acima, $A=[4,5,3]$, e $d(3,5)=d(3,4)=d(4,5)=1$. As posições de $3,4,5$ são, respectivamente, $3,1,2$.
Por fim, Jiulian fornece um parâmetro $K$. Usando a árvore enraizada $T$ e a sequência $A$, construímos um grafo não direcionado $G$ com $n$ vértices, sem arestas múltiplas nem laços. Dois vértices distintos $u,v$ são adjacentes se, e somente se, satisfazem pelo menos uma das condições abaixo:
- Existe uma aresta entre $u,v$ na árvore $T$.
- Tanto $u$ quanto $v$ são folhas de $T$, e $d(u,v)\le K$.
Para $K=1$ ou $2$, o grafo $G$ correspondente ao exemplo acima é o mostrado abaixo.
Agora, Jiulian quer que você calcule o número de ciclos hamiltonianos distintos de $G$. Como a resposta pode ser muito grande, imprima seu valor módulo $998244353$.
A seguir estão algumas definições complementares:
- Um ciclo hamiltoniano $H$ de um grafo não direcionado $G$ sem arestas múltiplas nem laços é um subconjunto das arestas de $G$ tal que cada vértice tem exatamente duas arestas incidentes distintas em $H$, e quaisquer dois vértices são alcançáveis entre si, direta ou indiretamente, pelas arestas de $H$.
- Dois ciclos hamiltonianos $H_1,H_2$ de um grafo não direcionado $G$ sem arestas múltiplas nem laços são distintos se, e somente se, existe uma aresta $e$ que pertence a $H_1$, mas não a $H_2$.
Entrada
Leia os dados do arquivo polygon.in.
A primeira linha contém dois inteiros $n,K$, indicando o número de vértices da árvore $T$ e o parâmetro $K$ escolhido por Jiulian.
A segunda linha contém $n-1$ inteiros $f_i$ ($1\le f_i\le i$), onde $f_i$ indica que existe a aresta $(f_i,i+1)$ na árvore $T$.
Saída
Escreva a saída no arquivo polygon.out.
Imprima uma linha com um inteiro: o número de ciclos hamiltonianos, módulo $998244353$.
Exemplos
Entrada 1
5 1 1 1 2 2
Saída 1
2
Nota
Este exemplo é exatamente o mesmo da descrição do problema. As ordens dos vértices nos dois ciclos hamiltonianos são $(1,2,4,5,3)$ e $(1,2,5,4,3)$.
Subtarefas
Os limites e as propriedades dos casos de teste estão na tabela abaixo:
| Caso de teste | $n$ | $K$ | Propriedade especial |
|---|---|---|---|
| $1$ | $\le5$ | $\le3$ | Nenhuma |
| $2$ | $\le10$ | $\le3$ | Nenhuma |
| $3$ | $\le15$ | $\le3$ | Nenhuma |
| $4$ | $\le20$ | $\le3$ | Nenhuma |
| $5$ | $\le1000$ | $=1$ | A |
| $6$ | $\le1000$ | $=1$ | A |
| $7$ | $\le1000$ | $=1$ | A |
| $8$ | $\le1000$ | $=1$ | Nenhuma |
| $9$ | $\le1000$ | $=1$ | Nenhuma |
| $10$ | $\le1000$ | $=1$ | Nenhuma |
| $11$ | $\le1000$ | $\le2$ | A |
| $12$ | $\le1000$ | $\le2$ | A |
| $13$ | $\le1000$ | $\le2$ | A |
| $14$ | $\le1000$ | $\le2$ | Nenhuma |
| $15$ | $\le1000$ | $\le2$ | Nenhuma |
| $16$ | $\le1000$ | $\le2$ | Nenhuma |
| $17$ | $\le1000$ | $\le3$ | A |
| $18$ | $\le1000$ | $\le3$ | A |
| $19$ | $\le1000$ | $\le3$ | Nenhuma |
| $20$ | $\le1000$ | $\le3$ | Nenhuma |
A propriedade A garante que cada vértice da árvore tem no máximo dois filhos.
Para todos os dados, garante-se $1\le f_i\le i$, $2\le n\le1000$.