#4456. 情报 (intell)

情报 (intell)

穗织镇的社会等级森严,除了[丛雨]之外,每个人最多只有一个直接上级,因为有一些人没有上级。如果 AABB 的上级,BBCC 的上级,那么 AA 就是 CC 的上级。绝对不会出现这样两个人 AABBAABB 的上级,BB 也是 AA 的上级。最开始的时刻是 00 ,[芳乃]要做的,就只是用 11 单位的时间把情报告诉某一个信息源人,让人们自行散布消息。在任意一个时间单位中,任何一个已经接到通知的人,都可以把消息告诉他的一个直接上级或者直接下属。现在,芳乃想知道: 1.到底需要多长时间,消息才能传遍穗织镇的所有人? 2.使消息传递过程消耗的时间最短,可供选择的信息源人有那些?

输入格式(intell.in)

第一行有一个数 NN ,表示镇上的人数,按照 11nn 编上了号码,丛雨的标号是 11 。第二行到第 NN 行(共 N1N-1 行),每一行一个数,第 ii 行的数表示第 ii 个人的直接上级的标号。

输出格式(intell.out)

第一行有一个数,表示最后一个人接到情报的最早时间。 第二行有若干个数,表示可供选择的信息源人 FF 的标号,按照标号从小到大的顺序输出,中间用空格分开。

输入样例

8
1
1
3
4
4
4
3

输出样例

5
3 4 5 6 7

数据范围

对于 30%30\% 的数据,保证 n100n \le 100 。 对于 50%50\% 的数据,保证 n500n \le 500 。 对于 100%100\% 的数据,保证 n1000n \le 1000