Once upon a time there was only one router in the well-known company Bmail. Years went by and over time new routers were purchased. Every time they bought a new router, they connected it to one of the routers bought before it. You are given the values p_i — the index of the router to which the i-th router was connected after being purchased (p_i < i).

There are n routers in Boogle in total now. Print the sequence of routers on the path from the first to the n-th router.

Input

The first line contains integer number n (2 ≤ n ≤ 200000) — the number of the routers. The following line contains n-1 integers p_2, p_3, ..., p_n (1 ≤ p_i < i), where p_i is equal to index of the router to which the i-th was connected after purchase.

Output

Print the path from the 1-st to the n-th router. It starts with 1 and ends with n. All the elements in the path should be distinct.

Examples

Input

8
1 1 2 2 3 2 5


Output

1 2 5 8 

Input

6
1 2 3 4 5


Output

1 2 3 4 5 6 

Input

7
1 1 2 3 4 3


Output

1 3 7 
def input_ints():
    return list(map(int, input().split()))


class Tree:
    def __init__(self, parent=None):
        self.parent = parent
        if parent is not None:
            parent.add_child(self)
        self.children = list()

    def add_child(self, child):
        self.children.append(child)


if __name__ == '__main__':
    n = int(input())
    prevs = input_ints()

    t = Tree()
    nodes = [t]
    setattr(nodes[-1], 'id', 1)
    for id, parent_id in enumerate(prevs):
        nodes.append(Tree(nodes[parent_id - 1]))
        setattr(nodes[-1], 'id', id + 2)

    route = [nodes[-1]]
    while route[-1].parent is not None:
        route.append(route[-1].parent)

    print(' '.join(map(lambda x: str(x.id), reversed(route))))