트리 위의 세 사람

아직 제출이 없습니다시간 제한4초메모리 제한1024 MB

문제

정점이 NN개인 트리가 하나 있다. 각 정점에는 11부터 NN까지의 정수 번호가 매겨져 있다. 루트는 11번 정점이다.

각 정점마다 사람들이 서 있는데, ii번 정점에는 A_iA\_i명의 사람이 서 있다 (1iN)(1 \le i \le N). 또한, 양의 정수 KK가 주어진다.

트리 상의 두 정점 XX, YY에 대해 lca(X,Y)lca(X,Y)XXYY의 최소 공통 조상, dist(X,Y)dist(X,Y)를 두 정점을 잇는 최단 경로에 있는 간선 개수로 정의한다.

이제 이 트리에서 서로 다른 사람 세 명을 고르자. 세 명은 모두 서로 다른 정점에 서 있어야 하고, 세 사람의 정점 번호의 집합을 A,B,C\\{A, B, C\\} 라고 했을 때 다음 조건을 만족해야 한다.

  • lca(A,B)=lca(A,C)=lca(B,C)=D∉A,B,Clca(A,B) = lca(A,C) = lca(B,C) = D \not\in \\{A, B, C\\}
  • dist(A,D)+dist(B,D)+dist(C,D)=Kdist(A,D) + dist(B,D) + dist(C,D) = K

그렇게 되도록 사람 세 명을 고르는 방법이 총 몇 가지 있는지 구하여라. 그 값이 클 수 있으니, 998,244,353998\\,244\\,353으로 나눈 나머지를 출력하여라.

입력

첫 번째 줄에 줄에 트리의 정점 수 NN, 문제에서 설명한 정수 KK가 공백으로 구분되어 주어진다.

두 번째 줄에 N1N-1개의 정수 P_2,P_3,,P_NP\_2, P\_3, \dots, P\_N이 공백으로 구분되어 주어진다. P_iP\_iii번 정점의 부모 정점 번호이다.

세 번째 줄에 NN개의 정수 A_1,A_2,,A_NA\_1, A\_2, \dots, A\_N이 공백으로 구분되어 주어진다.

출력

주어진 트리에서 세 사람을 조건에 맞게 고르는 방법의 수를 998,244,353998\\,244\\,353으로 나눈 나머지를 출력한다.

제한

  • 4N500,0004 \le N \le 500\\,000
  • 3KN13 \le K \le N-1
  • 1P_ii11 \le P\_i \le i - 1 (2iN)(2 \le i \le N)
  • 1A_i998,244,3521 \le A\_i \le 998\\,244\\,352 (1iN)(1 \le i \le N)