你相信谣言吗?
在一项著名的心理学实验中,人们被要求观察两条线,并指出哪一条更长。事实上,除了一人之外,其余人都是实验者预先安排好的托儿。这些托儿实际上会说较短的线更长。当周围所有人都给出相同的回答时,真正的受试者也会说较短的线更长。这个实验表明人们会受到周围人的强烈影响,谣言也是如此。
谣言始于最初的传播者。最初的传播者可以有多人,除了最初的传播者之外,没有人会凭空制造并相信谣言。
每分钟,相信谣言的人会同时向所有周围的人传播谣言。如果一个人周围的人中有一半以上相信谣言,那么这个人也会开始相信谣言。
由于从相信谣言的那一刻起,人们就不会再听取其他说法,因此一旦相信了谣言,就会一直相信下去。
现在,让我们找出人们开始相信谣言的时间。
输入格式
第一行包含人数 $N$ ($1 \le N \le 200\,000$),表示有从 1 号到 $N$ 号的人。
从第二行开始的 $N$ 行,第 $i$ 行($1 \le i \le N$)包含 $i$ 号人的周围人编号,并以 $0$ 结尾,各数字间用空格分隔。编号为 $1$ 到 $N$ 之间的自然数,同一行中没有重复的编号。不存在自己是自己周围人或单方面成为周围人的情况,且总的双向周围人关系不超过 $1\,000\,000$ 个。
下一行包含最初传播谣言的人数 $M$ ($1 \le M \le N$)。
最后一行包含最初传播者的编号,以空格分隔。最初传播者的编号不重复。
输出格式
输出 $N$ 个整数 $t_1, t_2, \dots, t_N$,以空格分隔。$t_i$ 表示 $i$ 号人开始相信谣言的时间(分钟)。如果经过足够长的时间后仍不相信谣言,则输出 $-1$。最初的传播者被认为从 0 分钟开始相信谣言。
样例
样例输入 1
7 2 3 0 1 3 0 1 2 4 0 3 5 0 4 0 0 0 2 1 6
样例输出 1
0 1 2 3 4 0 -1
样例输入 2
7 2 4 0 1 3 0 2 5 0 1 5 6 0 3 4 6 7 0 4 5 7 0 5 6 0 1 6
样例输出 2
4 4 3 3 2 0 1
说明
样例 1 说明
0 分钟:最初的传播者(1 号和 6 号)产生谣言。
1 分钟:1 号向 2 号和 3 号传播谣言。2 号的周围人中有 2 人,其中 1 人相信谣言,因此 2 号开始相信。3 号的周围人中有 3 人,只有 1 人相信谣言,因此 3 号不相信。6 号没有可以传播谣言的周围人。
2 分钟:1 号和 2 号向 3 号传播谣言。3 号的周围人中有 3 人,其中 2 人(超过一半)相信谣言,因此 3 号也从 2 分钟开始相信。
3 分钟:3 号向 4 号传播谣言。4 号开始相信。
4 分钟:5 号也开始相信谣言。7 号在经过足够长的时间后仍不相信谣言。
Figure 1. 样例 1 说明图