만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Lucky Stars Management

시간 제한2초메모리 제한1024 MB

요약
회사 트리 구조와 각 직원의 기대 벌금 E_i가 주어집니다. 주어진 값이 성립하는지 판단하고, 성립한다면 빌의 최소 연봉을 구합니다.
난이도

어려움10점 중 8점

유형
트리, DFS, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

회사 Lucky Stars에는 NN명의 직원이 있으며, 회사에서의 직급 순서대로 1번부터 NN번까지 번호가 붙어 있다. 사장 Bill의 사원 번호는 1번이다. Bill을 제외한 모든 직원에게는 직속 상사가 정확히 한 명 있다. 직원 ii의 직속 상사는 Pi<iP_i < i이다. 직원 jj의 연봉 AjA_j는 00 이상 109+610^9+6 이하의 정수이다.

어느 날 Bill은 미래를 언제나 정확히 맞히는 점쟁이를 찾아갔다. 점쟁이는 "언젠가 KK가지 종류의 실수가 일어나고, 그때 Lucky Stars의 경영이 어려워진다"고 말했다.

실수는 각각 정확히 직원 한 명이 저지른다. i=1,2,…,Ni=1,2,\ldots,N에 대해 실수를 직원 ii가 저지를 확률은 1/N1/N이다. 실수들은 서로 독립이므로, 한 직원이 여러 번 실수할 수도 있다.

Bill은 점쟁이의 말이 맞는다면 개인 책임을 엄격히 묻기로 했다. 하루에 KK가지 종류의 실수가 일어나면, Bill은 벌금을 낼 직원을 한 명 고르려 한다. 직원은 다음 규칙으로 정한다.

  • 직원이 실수를 저지르면, 그 직원과 그 위의 모든 상사(직속 상사, 상사의 상사, 그리고 Bill까지)가 책임을 진다.
  • KK가지 실수 모두에 책임을 지는 직원 중 번호가 가장 큰 직원이 벌금을 낸다.
  • j=1,2,…,Kj=1,2,\ldots,K에 대해 jj번째 실수를 저지른 직원의 연봉을 AjA_j라 하면, 벌금은 A1×A2×…×AKA_1 \times A_2 \times \ldots \times A_K이다.

Bill은 점쟁이의 말이 맞는다고 가정하고 직원 ii가 낼 벌금의 기댓값 EiE_i를 계산한 뒤, 이를 109+710^9+7로 나눈 나머지로 적었다. i=1,2,…,Ni=1,2,\ldots,N에 대해 기댓값을 Yi/XiY_i/X_i로 나타내면(XiX_i와 YiY_i는 서로소인 정수이고, XiX_i는 109+710^9+7로 나누어떨어지지 않는다), 답은 YiY_i div XiX_i를 109+710^9+7로 나눈 나머지이다.

이제 회사 구조(PiP_i 값)와 Bill이 계산한 벌금 기댓값 EiE_i가 주어진다. 주어진 정보가 모두 맞을 수 있는지 판단하고, 맞을 수 있다면 Bill 연봉의 최솟값을 구하라.

입력

첫 줄에 두 정수 NN (1≤N≤2⋅1051 \le N \le 2 \cdot 10^5)과 KK (1≤K≤1091 \le K \le 10^9, KK는 홀수)가 주어진다. 둘째 줄에는 N−1N-1개의 정수 P2,…,PNP_2, \ldots, P_N (1≤Pi≤i−11 \le P_i \le i-1)이 주어지며, 이는 직원 ii의 직속 상사 번호이다. N=1N=1이면 둘째 줄은 비어 있다. 셋째 줄에는 NN개의 정수 EiE_i (0≤Ei≤109+60 \le E_i \le 10^9+6)가 주어지며, 이는 직원별로 계산된 벌금 기댓값이다.

출력

주어진 값이 확실히 잘못되었다면 −1-1을 출력한다. 그렇지 않으면 Bill 연봉의 최솟값을 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    2 1
    1
    2 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    1 1
    
    2
    
    예상 출력
    2