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).

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 a single integer — the number of ways to split the tree modulo 1000000007 (10^{9} + 7).

提交代码