F. Разрезы диаметров
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Задано целое число $$$k$$$ и неориентированное дерево, состоящее из $$$n$$$ вершин.

Длина простого пути (пути, в котором каждая вершина встречается не более одного раза) между некоторой парой вершин равна количеству ребер в данном пути. Диаметр дерева равен максимальной длине пути между всеми парами вершин в дереве.

Вы планируете удалить множество ребер из дерева. Когда ребра удаляются, дерево распадается на несколько меньших деревьев. Множество ребер считается корректным, если у всех полученных деревьев диаметр меньше либо равен $$$k$$$.

Два множества ребер считаются различными, если существует такое ребро, что оно встречается только в одном из множеств.

Посчитайте количество корректных множеств ребер по модулю $$$998\,244\,353$$$.

Входные данные

В первой строке записаны два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 5000$$$, $$$0 \le k \le n - 1$$$) — количество вершин в дереве и максимальный разрешенный диаметр, соответственно.

В каждой из следующих $$$n-1$$$ строк содержится описание ребра: два целых числа $$$v$$$ и $$$u$$$ ($$$1 \le v, u \le n$$$, $$$v \neq u$$$).

Заданные ребра образуют дерево.

Выходные данные

Выведите одно целое число — количество корректных множеств ребер по модулю $$$998\,244\,353$$$.

Примеры
Входные данные
4 3
1 2
1 3
1 4
Выходные данные
8
Входные данные
2 0
1 2
Выходные данные
1
Входные данные
6 2
1 6
2 4
2 6
3 6
5 6
Выходные данные
25
Входные данные
6 3
1 2
1 5
2 3
3 4
5 6
Выходные данные
29
Примечание

В первом примере диаметр заданного дерева уже меньше либо равен $$$k$$$. Поэтому можно выбрать любое множество ребер, и в полученных деревьях диаметры будут меньше либо равны $$$k$$$. Всего есть $$$2^3$$$ множеств, включая пустое.

Во втором примере нужно удалить единственное ребро. Иначе диаметр будет $$$1$$$, что больше $$$0$$$.

Деревья для третьего и четвертого примеров: