Byteasar 发现了一个洞穴。这个洞穴包含 $n$ 个房间,房间之间通过通道连接,使得从任意一个房间到另一个房间都有且仅有一条路径。
现在需要对这个洞穴进行更彻底的考察,Byteasar 请他的朋友们来帮忙。他们都到达了洞穴,并愿意分成若干个小组。每个小组考察的房间数量必须相同,且每个房间必须恰好由一个小组考察。此外,为了使各组的工作互不干扰,同一小组的成员在考察其分配到的房间时,必须能够在不经过其他小组分配的房间的情况下,在自己小组的房间之间自由移动。
探险者们可以分成多少个小组?
输入格式
输入的第一行包含一个整数 $n$ ($2 \leqslant n \leqslant 3\,000\,000$),表示洞穴中房间的数量。房间编号从 $1$ 到 $n$。
接下来的 $n-1$ 行描述了房间之间的连接。其中第 $i$ 行包含一个整数 $a_i$ ($1 \leqslant a_i \leqslant i$),表示连接房间 $i+1$ 和 $a_i$ 的通道。
输出格式
你的程序应输出一行,包含所有满足条件的整数 $k$。对于这些 $k$,洞穴的房间可以被划分为 $k$ 个大小相等的互不相交的集合,且对于每个集合,该集合内的任意两个房间之间都可以仅通过该集合内的房间相互到达。输出的数字应按升序排列,并用空格分隔。
样例
输入格式 1
6 1 2 3 3 5
输出格式 1
1 3 6