We will use the following (standard) definitions from graph theory. Let *V* be a nonempty and finite set, its elements being called vertices (or nodes). Let *E* be a subset of the Cartesian product *V×V*, its elements being called edges. Then *G=(V,E)* is called a directed graph.
Let *n* be a positive integer, and let *p=(e*_{1},...,e_{n}) be a sequence of length *n* of edges *e*_{i}∈E such that *e*_{i}=(v_{i},v_{i+1}) for a sequence of vertices *(v*_{1},...,v_{n+1}). Then *p* is called a path from vertex *v*_{1} to vertex *v*_{n+1} in *G* and we say that *v*_{n+1} is reachable from *v*_{1}, writing *(v*_{1}→v_{n+1}).
Here are some new definitions. A node *v* in a graph *G=(V,E)* is called a sink, if for every node *w* in *G* that is reachable from *v*, *v* is also reachable from *w*. The bottom of a graph is the subset of all nodes that are sinks, i.e., *bottom(G)={v∈V|∀w∈V:(v→w)⇒(w→v)}*. You have to calculate the bottom of certain graphs.

The input contains several test cases, each of which corresponds to a directed graph *G*. Each test case starts with an integer number *v*, denoting the number of vertices of *G=(V,E)*, where the vertices will be identified by the integer numbers in the set *V={1,...,v}*. You may assume that *1<=v<=5000*. That is followed by a non-negative integer *e* and, thereafter, *e* pairs of vertex identifiers *v*_{1},w_{1},...,v_{e},w_{e} with the meaning that * (v*_{i},w_{i})∈E. There are no edges other than specified by these pairs. The last test case is followed by a zero.

提交代码