정점이 N개인 트리가 하나 있다. 각 정점에는 1부터 N까지의 정수 번호가 매겨져 있다. 루트는 1번 정점이다.
각 정점마다 사람들이 서 있는데, i번 정점에는 A_i명의 사람이 서 있다 (1≤i≤N). 또한, 양의 정수 K가 주어진다.
트리 상의 두 정점 X, Y에 대해 lca(X,Y)를 X와 Y의 최소 공통 조상, dist(X,Y)를 두 정점을 잇는 최단 경로에 있는 간선 개수로 정의한다.
이제 이 트리에서 서로 다른 사람 세 명을 고르자. 세 명은 모두 서로 다른 정점에 서 있어야 하고, 세 사람의 정점 번호의 집합을 A,B,C 라고 했을 때 다음 조건을 만족해야 한다.
그렇게 되도록 사람 세 명을 고르는 방법이 총 몇 가지 있는지 구하여라. 그 값이 클 수 있으니, 998,244,353으로 나눈 나머지를 출력하여라.
첫 번째 줄에 줄에 트리의 정점 수 N, 문제에서 설명한 정수 K가 공백으로 구분되어 주어진다.
두 번째 줄에 N−1개의 정수 P_2,P_3,…,P_N이 공백으로 구분되어 주어진다. P_i는 i번 정점의 부모 정점 번호이다.
세 번째 줄에 N개의 정수 A_1,A_2,…,A_N이 공백으로 구분되어 주어진다.
주어진 트리에서 세 사람을 조건에 맞게 고르는 방법의 수를 998,244,353으로 나눈 나머지를 출력한다.