久莲 — девочка, которой нравится придумывать задачи.
После финала World Final в этом году 久莲 особенно полюбила вычислительную геометрию и решила предложить такую задачу на NOI. Но с вычислительной геометрией в этой задаче связано только название.
Сначала 久莲 задаёт корневое дерево $T$ с $n$ вершинами ($n\geq 2$), корень которого имеет номер $1$. Листьями назовём все вершины, кроме корня, степень которых равна ровно $1$. На рисунке ниже приведён пример дерева $T$ с множеством листьев $\{3,4,5\}$.
Затем 久莲 строит по этому дереву последовательность $A$:
- Выполняет обход всего дерева в глубину, начиная с корня и посещая детей в порядке возрастания их номеров. Так получается порядок DFS дерева $T$.
- Выписывает все листья в последовательность $A$ в порядке их появления в порядке DFS.
Далее по последовательности $A$ 久莲 определяет расстояние $d(u,v)$ между двумя листьями $u,v$. Если $u$ — элемент $i$ последовательности $A$, а $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$, построим неориентированный граф без кратных рёбер и петель $G$ с $n$ вершинами. Две различные вершины $u,v$ соединены ребром тогда и только тогда, когда выполняется хотя бы одно из условий:
- В дереве $T$ есть ребро между $u$ и $v$.
- Вершины $u,v$ — листья дерева $T$, и $d(u,v)\leq K$.
При $K=1$ или $K=2$ для приведённого примера получается граф $G$, показанный ниже.
Теперь 久莲 просит вас вычислить количество различных гамильтоновых циклов в $G$. Ответ может быть большим; выведите его по модулю $998\,244\,353$.
Несколько дополнительных определений:
- Гамильтонов цикл $H$ неориентированного графа $G$ без кратных рёбер и петель — подмножество его рёбер, в котором каждой вершине инцидентны ровно два различных ребра из $H$ и любые две вершины достижимы друг из друга непосредственно или через другие вершины по рёбрам $H$.
- Два гамильтоновых цикла $H_1,H_2$ такого графа различны тогда и только тогда, когда существует ребро $e$, которое принадлежит $H_1$, но не принадлежит $H_2$.
Входные данные
Данные читаются из файла polygon.in.
Первая строка содержит два целых числа $n,K$ — количество вершин дерева $T$ и выбранный 久莲 параметр $K$.
Вторая строка содержит $n-1$ целых чисел $f_i$ ($1\leq f_i\leq i$), означающих, что в дереве $T$ есть ребро $(f_i,i+1)$.
Выходные данные
Выведите ответ в файл polygon.out.
Выведите одну строку с одним целым числом — количеством гамильтоновых циклов по модулю $998\,244\,353$.
Примеры
Входные данные 1
5 1 1 1 2 2
Выходные данные 1
2
Примечание
Этот пример в точности совпадает с примером из условия. Два гамильтоновых цикла проходят вершины в порядке $(1,2,4,5,3)$ и $(1,2,5,4,3)$ соответственно.
Подзадачи
Размеры и свойства данных для тестов приведены в следующей таблице:
| Номер | $n$ | $K$ | Особое свойство | Номер | $n$ | $K$ | Особое свойство |
|---|---|---|---|---|---|---|---|
| $1$ | $\leq 5$ | $\leq 3$ | Нет | $11$ | $\leq 1000$ | $\leq 2$ | A |
| $2$ | $\leq 10$ | $12$ | |||||
| $3$ | $\leq 15$ | $13$ | |||||
| $4$ | $\leq 20$ | $14$ | Нет | ||||
| $5$ | $\leq 1000$ | $=1$ | A | $15$ | |||
| $6$ | $16$ | ||||||
| $7$ | $17$ | $\leq 3$ | A | ||||
| $8$ | Нет | $18$ | |||||
| $9$ | $19$ | Нет | |||||
| $10$ | $20$ |
Свойство A: гарантируется, что каждая вершина дерева имеет не более двух детей.
Для всех данных гарантируется $1\leq f_i\leq i$, $2\leq n\leq 1000$.