atcoder#NIKKEI2019QUALD. Restore the Tree

Restore the Tree

配点 : 500500

問題文

NN 頂点の根付き木 (注記を参照) があり、その頂点には 11 から NN までの番号が振られています。 根以外の各頂点には、その親から一本の有向辺が伸びています。 なお、根は頂点 11 とは限りません。

高橋くんは、このグラフに MM 本の新たな有向辺を書き加えました。 書き足された各辺 uvu \rightarrow v は、ある頂点 uu からその子孫であるような頂点 vv に向かって伸びています。

高橋くんが辺を書き加えたあとの NN 頂点 N1+MN-1+M 辺の有向グラフが与えられます。 より具体的には、N1+MN-1+M 組の整数のペア (A1,B1),...,(AN1+M,BN1+M)(A_1, B_1), ..., (A_{N-1+M}, B_{N-1+M}) が与えられ、これらは ii 番目の辺が頂点 AiA_i から頂点 BiB_i に向かって伸びていることを表します。

元の根付き木を復元してください。

注記

「木」や関連するグラフ理論の用語に関しては、Wikipediaの記事

などをご覧ください。

制約

  • 3N3 \leq N
  • 1M1 \leq M
  • N+M105N + M \leq 10^5
  • 1Ai,BiN1 \leq A_i, B_i \leq N
  • AiBiA_i \neq B_i
  • iji \neq j ならば (Ai,Bi)(Aj,Bj)(A_i, B_i) \neq (A_j, B_j)
  • 入力されるグラフは、NN 頂点の根付き木に問題文中の条件を満たす MM 本の辺を書き足すことで得られる。

入力

入力は以下の形式で標準入力から与えられる。

NN MM

A1A_1 B1B_1

::

AN1+MA_{N-1+M} BN1+MB_{N-1+M}

出力

NN 行出力せよ。 ii 行目には、頂点 ii が元の木の根であれば 0 を出力し、そうでなければ元の木で頂点 ii の親を表す整数を出力すること。

なお、元の木は一意に定まることが示せる。

3 1
1 2
1 3
2 3
0
1
2

入力されたグラフは次のようなものです。

これは、1231 \rightarrow 2 \rightarrow 3 という根付き木に辺 131 \rightarrow 3 を書き足したものであると考えられます。

6 3
2 1
2 3
4 1
4 2
6 1
2 6
4 6
6 5
6
4
2
0
6
2