制图员 Carla 代表国家定位与测绘中心 (NCPC) 进行了一次考察。目标是测量北方某处河流系统的水流量。然而,该地区非常偏远,且 Carla 并非冒险型人格,因此她只能测量部分位置的水流量。Carla 现在担心 NCPC 明年夏天会把她送回这片荒野,所以她咨询了一些算法专家(你),看看是否有可能重建缺失的数据。
该河流系统由一棵有 $n$ 个顶点的有根树表示,顶点编号从 $1$ 到 $n$。这棵树的叶子节点是源头,其他顶点对应汇流处(多条河流汇合的地方)。水从编号较大的顶点流向编号较小的顶点。顶点 $1$ 是树的根,也是河流系统的入海口。源头的水流量可以是任何正整数,而汇流处的水流量是其所有子节点水流量之和。你将获得这棵树以及其中一些顶点的水流量,你的任务是找出所有顶点的水流量,或者确定这是不可能的。
图 F.1:样例输入 1 及其解的示意图。水从左向右流动。图中红色的流量(顶点 1, 5, 7 和 9)未给出,但可以推导出分别为 9, 2, 3 和 1。
输入格式
输入的第一行包含一个整数 $n$ ($2 \le n \le 3 \cdot 10^5$),表示树中的顶点数。 接下来一行包含 $n - 1$ 个整数 $p_2, \dots, p_n$ ($1 \le p_i < i$),其中 $p_i$ 是顶点 $i$ 的父节点编号。 最后一行包含 $n$ 个整数 $a_1, \dots, a_n$ ($0 \le a_i \le 10^9$),其中 $a_i$ 表示顶点 $i$ 的水流量。如果 $a_i$ 等于 $0$,则该顶点的水流量未知。否则,$a_i$ 等于顶点 $i$ 的水流量。注意,$a_i$ 的上限 $10^9$ 不适用于未知值,它们可以是任何正整数。
输出格式
如果所有 $n$ 个水流量都能唯一确定,则按顶点编号递增的顺序输出它们。否则,输出 “impossible”。注意,可能存在无法重建水流量的情况(如果 Carla 提供的数据在某种程度上是不一致的)。在这种情况下,你也应该输出 “impossible”。
样例
输入 1
10 1 2 3 2 1 6 7 7 6 0 4 2 2 0 5 0 2 0 2
输出 1
9 4 2 2 2 5 3 2 1 2
输入 2
5 1 2 2 1 4 0 0 0 1
输出 2
impossible
输入 3
4 1 1 1 3 2 1 0
输出 3
impossible