#TIMUS1022. 家谱树
家谱树
1022. 家谱树
时间限制: 1.0 秒
内存限制: 64 MB
背景
火星人的血缘关系系统足够令人困惑。实际上,火星人可以在他们想要的时候和地点发芽。他们聚集在不同的群体中,因此一个火星人可以有一个父母,也可以有十个。没有人会对一百个孩子感到惊讶。火星人已经习惯了这一点,他们的生活方式对他们来说似乎很自然。
在行星委员会中,令人困惑的家谱系统导致了一些尴尬。那里聚集了最值得尊敬的火星人,因此为了在所有的讨论中不冒犯任何人,通常先让年长的火星人发言,然后是年轻一些的,最后才是最年轻的无子女议员。然而,维持这个顺序确实不是一件简单的任务。火星人并不总是知道他所有的父母(更不用说他的祖父母了!)。但如果错误地先让孙子发言,然后才是他年轻的曾祖父,这将是一个真正的丑闻。
问题
你的任务是编写一个程序,一劳永逸地确定一个顺序,保证委员会的每个成员都比他的每个后代更早发言。
输入
标准输入的第一行包含唯一的数字,——火星行星委员会的成员数量。根据几个世纪以来的传统,委员会的成员用从1到的整数编号。接下来,正好有行,而且第行包含第个成员的孩子列表。孩子列表是一个由孩子的序列号组成的序列,以任意顺序用空格分隔。孩子列表可能为空。列表(即使是空的)以0结尾。
输出
标准输出应该在其唯一一行包含发言者编号的序列,用空格分隔。如果有多个序列满足问题的条件,你可以向标准输出写入其中任何一个。至少总是存在一个这样的序列。
样例
输入
5
0
4 5 1 0
1 0
5 3 0
3 0
输出
2 4 5 3 1