#779. 爬

Description

鸡尾酒很喜欢让别人爬,于是他种了一棵树。然后在树上放了 nn只蚂蚁,看它们爬。

树上有 nn个点,用 n1n-1 条边相连,除了根结点外,每个结点都有父亲,根结点记为 1 号结点,其它结点分别编号为 2n2 \sim nnn个点上分别放有一只蚂蚁,并且每只蚂蚁有一个属性 aia_i,除了根节点的蚂蚁之外,每只蚂蚁都可以选择向上爬到父亲结点或者不爬(只能爬一次)。在所有蚂蚁都选择完毕之后,我们统计这些蚂蚁产生的快乐值:如果多只蚂蚁在同一点,则产生这些蚂蚁属性的异或和的快乐值。如果某个点上只有一只蚂蚁或者没有蚂蚁,则不产生快乐值。问所有方案的所有快乐值之和。

由于答案很大,你只需要输出答案对 109+710^9+7 取模之后的结果就可以了。

Format

Input

第一行输入一个正整数 nn,表示树的点数。

接下来一行输入nn 个正整数 aia_i,分别表示每一只蚂蚁的属性。

接下来一行输入 n1n−1 个正整数,分别表示 2n2 \sim n 号结点的父亲结点编号。

Output

输出一行一个整数,表示答案对 109+710^9+7 取模后的结果。

Samples

3
1 2 4
1 2
12
3
1 2 2
1 1
7
5
0 1 0 2 2
1 1 2 2
22
4
1 1 1 0 
1 2 2
2

Limitation

本题共有 10 个测试点

对于 1 测试点,有 1n201 \leq n \leq 20

对于 2-3 测试点,有1n1000 1 \leq n \leq 1000

对于 4 测试点,树是一条链

对于 5-6 测试点,树是一个二叉树

对于 7-10 测试点,树的形态无特殊限制,1n105,0ai1091 \leq n \leq 10^5, 0 \leq a_i \leq 10^9