N개의 정점으로 이루어진 트리가 주어진다. i번 정점에 쓰인 값을 w[i]라고 하자.
1번 정점에 쓰인 값부터 n번 정점에 쓰인 값을 차례로 늘어놓은 수열을 트리 수열이라고 하자.
초기에 모든 정점에 대해 w[i] = i를 만족한다.
아래의 연산을 0번 이상 수행하여 얻을 수 있는 서로 다른 트리 수열의 개수를 구하시오.
거리가 k 이상인 두 정점 a, b를 선택해 w[a]와 w[b]를 서로 바꾼다.
여기서 거리는 두 정점 사이의 최단 경로에 포함된 간선의 개수를 의미한다.
답의 크기가 너무 커질 수 있으므로 998244353으로 나눈 나머지를 출력한다.
(두 수열 A와 B가 서로 다르다는 것은 A[i] ≠ B[i]인 i가 하나라도 존재함을 의미한다.)
첫 번째 줄에 트리의 크기 정수 N과 연산에 필요한 최소 거리 정수 k가 주어진다.
(1 <= N <= 105, 1 <= k <= 109)
두 번째 줄부터 N-1개의 줄에 걸쳐 트리의 각 간선의 두 끝점이 공백으로 구분되어 주어진다.
올바르지 않은 트리가 주어지는 경우는 없다.