Appleman has a tree with $*n*$ vertices. Some of the vertices (at least one) are colored black and other vertices are colored white.
Consider a set consisting of $*k*$ $(0 ≤ *k* < *n*)$ edges of Appleman's tree. If Appleman deletes these edges from the tree, then it will split into $(*k* + 1)$ parts. Note, that each part will be a tree with colored vertices.
Now Appleman wonders, what is the number of sets splitting the tree in such a way that each resulting part will have exactly one black vertex? Find this number modulo $1000000007$ ($10^{9} + 7$).
Input
The first line contains an integer $*n*$ ($2 ≤ *n* ≤ 10^{5}$) — the number of tree vertices.
The second line contains the description of the tree: $*n* - 1$ integers $*p*_{0}, *p*_{1}, ..., *p*_{*n* - 2}$ ($0 ≤ *p*_{*i*} ≤ *i*$). Where $*p*_{*i*}$ means that there is an edge connecting vertex $(*i* + 1)$ of the tree and vertex $*p*_{*i*}$. Consider tree vertices are numbered from $0$ to $*n* - 1$.
The third line contains the description of the colors of the vertices: $*n*$ integers $*x*_{0}, *x*_{1}, ..., *x*_{*n* - 1}$ ($*x*_{*i*}$ is either $0$ or $1$). If $*x*_{*i*}$ is equal to $1$, vertex $*i*$ is colored black. Otherwise, vertex $*i*$ is colored white.
Output
Output a single integer — the number of ways to split the tree modulo $1000000007$ ($10^{9} + 7$).
样例
3
0 0
0 1 1
2
6
0 1 1 0 4
1 1 0 0 1 0
1
10
0 1 2 1 4 4 4 0 8
0 0 0 1 0 1 1 0 0 1
27
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。