必经之路
EXY-PG-0246
题目描述
给定一张有 $n$ 个结点 $m$ 条边的有向图 $G$,$G$ 中的结点依次以 $1,2,…,n$ 编号。第 $i$ 条边($1≤i≤m$)从结点 $u_{i}$ 指向结点 $v_{i}$。
$G$ 中任一入度为 $0$ 的结点可以作为合法起点,任一出度为 $0$ 的结点可以作为合法终点。
如果 $G$ 中所有可能的从合法起点到合法终点的路径都会经过结点 $u$,则称 $u$ 是必经点。注意必经点可以为合法起点或合法终点。
请你求出 $G$ 中所有必经点的编号。
例如,在下图中合法起点有点 $1$ 与点 $2$,合法终点有点 $7$ 与点 $8$。

所有合法起点到合法终点的路径为:
- $1→3→4→5→7$
- $1→3→4→5→6→7$
- $1→3→4→5→6→8$
- $2→3→4→5→7$
- $2→3→4→5→6→7$
- $2→3→4→5→6→8$
- $2→4→5→7$
- $2→4→5→6→7$
- $2→4→5→6→8$
因此必经点有两个,编号分别为 $4,5$。
输入格式
第一行,两个正整数 $n,m$,表示有向图 $G$ 中的结点数与边数。
接下来 $m$ 行,每行两个正整数 $u_{i},v_{i}$,表示一条从结点 $u_{i}$ 指向结点 $v_{i}$ 的有向边。
保证 $G$ 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 $0$ 的点)。
输出格式
第一行,一个整数,表示必经点的数量 $k$。
如果存在必经点,则第二行从小到大输出 $G$ 中所有必经点的编号。
样例说明
样例 1
输入:
8 9
1 3
2 3
3 4
4 5
5 6
6 7
6 8
2 4
5 7
输出:
2
4 5
样例 2
输入:
8 9
1 3
2 3
3 4
4 5
5 6
6 7
6 8
2 5
4 7
输出:
0
数据范围
对于 40% 的测试点,保证 $1≤n≤100$,$1≤m≤200$。
对于所有测试点,保证 $1≤n≤1000$,$1≤m≤2000$。保证 $G$ 中至少有一个合法起点,至少有一个合法终点,且至少存在一条从一个合法起点到一个合法终点路径,同时不存在孤立点(即出度和入度都为 $0$ 的点)。