D. 毕业论文(paper)

内存限制:256 MiB 时间限制:1000 ms 输入文件: paper.in 输出文件: paper.out
题目类型:传统 评测方式:文本比较

题目描述

又到了一年的毕业季,小明的姐姐正在奋战毕业论文,书写论文需要查阅非常多的文献资料,文献也会引用别人的文献,姐姐需要把每篇文献最原始的出处查找出来。假设现在有 n(n≤10^5) 篇文献(编号从 1 开始), m(m≤10^6) 条参考文献引用关系,姐姐从编号 1 开始阅读,请帮姐姐设计一种方法,可以不重复、遗漏的看完所有文献,要求在阅读时如果遇文献有引用,需要看完后继续看引用的文献,直到当前文献没有任何引用后,才返回上一步继续看其他文献。如果同时有多篇文献可阅读,优先看编号小的文章(因此可能需要先排序)。不保证编号为 1 的文章没有被其他文献引用,如图所示:

1801e6f804dd47e0e.jpg

输入格式

第 1 行为 2 个数,n 和 m,分别表示一共有 n(n≤10^5) 篇文献(编号为 1 到 n)以及 m(m≤10^6) 条参考文献引用关系;

接下来 m 行,每行有两个整数 a,b 表示文章 a 有参考文献 b。

输出格式

一行阅读文献的顺序,每个节点用 1 个空格分开。

样例

样例输入1

8 9
1 2
1 3
1 4
2 5
2 6
3 7
4 7
4 8
7 8

样例输出1

1 2 5 6 3 7 8 4

数据范围与提示

对于40%的数据, n<=10^4,m<=10^5

对于100%的数据, n<=10^5,m<=10^6

2024岳阳市市赛【初中组】(T4)