条条大路通罗马。在本题中,这意味着罗马帝国道路网中的每一条路都只能单向通行。除了罗马之外,每个城市都恰好有一条路通向外部,且沿着这些道路走,最终总能到达罗马。
每个城市(包括罗马本身)都可以建立一条通往罗马的贸易路线,并为罗马带来一定的价值。这些价值各不相同。由于每个城市都不希望贸易商过于拥挤,因此它们限制了该城市所能参与的贸易路线数量。
如果一个城市包含在从建立贸易路线的城市到罗马的唯一路径上,我们就称该城市参与了这条贸易路线。一个城市也参与其自身建立的贸易路线。
给定各城市的限制条件,请确定通过选择一个城市子集来建立贸易路线,能为罗马带来的最大价值。
输入格式
第一行包含一个整数 $N$ ($2 \le N \le 300\,000$),表示城市数量。城市编号为 $1$ 到 $N$。罗马是 $1$ 号城市。
下一行包含 $N-1$ 个整数 $p_2, p_3, \dots, p_N$ ($1 \le p_i < i$),其中 $p_i$ 是从城市 $i$ 出发沿唯一道路所到达的城市。
下一行包含 $N$ 个整数 $b_1, b_2, \dots, b_N$ ($0 \le b_i \le N$),其中 $b_i$ 是城市 $i$ 所能参与的贸易路线的最大数量。
下一行包含 $N$ 个不同的整数 $v_1, v_2, \dots, v_N$ ($0 \le v_i \le 10^9$),表示如果城市 $i$ 建立贸易路线,则为罗马带来的价值。
输出格式
首先输出罗马从任何有效的贸易路线子集中所能获得的最大价值。
接下来输出 $T$,即建立的贸易路线数量,然后按升序输出所选的 $T$ 个城市。
如果存在多种可能的方案,输出其中任意一种即可。
样例
样例输入 1
7 1 1 2 2 3 3 2 1 2 1 1 1 1 6 5 3 8 4 7 1
样例输出 1
15 2 4 6
样例输入 2
9 1 1 2 3 3 4 4 4 4 4 2 4 1 0 1 1 1 100 30 10 0 50 200 12 15 13
样例输出 2
195 4 1 2 5 8