AT_abc313_b [ABC313B] Who is Saikyo?

Description

[problemUrl]: https://atcoder.jp/contests/abc313/tasks/abc313_b $ N $ 人の競技プログラマーがいます。順に 人 $ 1 $, 人 $ 2 $, $ \dots $, 人 $ N $ と呼びます。 競技プログラマーの間には **強さ** と呼ばれる関係性があり、相異なる 2 人組 $ ( $人 $ X $, 人 $ Y $$ ) $ 全てに対して 「人 $ X $ は人 $ Y $ より強い」または「人 $ Y $ は人 $ X $ より強い」のどちらか一方が成り立ちます。 強さ は **推移律** が成り立ちます。言い換えると、相異なる 3 人組 $ ( $人 $ X $, 人 $ Y $, 人 $ Z $$ ) $ 全てに対して次の条件が成り立ちます。 - 人 $ X $ が人 $ Y $ よりも強く、かつ人 $ Y $ が人 $ Z $ よりも強いとき、人 $ X $ は人 $ Z $ よりも強い。 人 $ X $ が自分以外のどの人 $ Y $ に対しても「人 $ X $ は人 $ Y $ より強い」という関係が成り立つ時、人 $ X $ を **最強のプログラマー** と呼びます。(上記の制約下においてそのような人がちょうど 1 人存在することが証明できます) あなたは $ M $ 個の強さに関する情報を知っています。$ i $ 個目の情報は「人 $ A_i $ は人 $ B_i $ より強い」という情報です。 あなたは情報を元に $ N $ 人の中から最強のプログラマーを特定することができますか? 最強のプログラマーを特定できる場合はその人の番号を出力してください。特定できない場合、つまり最強のプログラマーとしてあり得る人が複数人いる場合は `-1` を出力してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ $ \vdots $ $ A_M $ $ B_M $

Output Format

最強のプログラマーを特定できる場合はその人の番号を出力せよ。特定できない場合は `-1` を出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 50 $ - $ 0\ \leq\ M\ \leq\ \frac{N(N-1)}{2} $ - $ 1\ \leq\ A_i,\ B_i\ \leq\ N $ - $ A_i\ \neq\ B_i $ - $ i\ \neq\ j $ ならば $ (A_i,\ B_i)\ \neq\ (A_j,\ B_j) $ - 全ての情報が正しくなるように、全ての相異なる $ 2 $ 人組にどちらが強いかを割り当てる方法が少なくとも $ 1 $ 通り存在する ### Sample Explanation 1 あなたは「人 $ 1 $ は人 $ 2 $ より強い」「人 $ 2 $ は人 $ 3 $ より強い」という情報が分かっています。 推移律から「人 $ 1 $ は人 $ 3 $ より強い」という情報もわかるので、人 $ 1 $ は最強のプログラマーです。 ### Sample Explanation 2 最強のプログラマーである可能性がある人は人 $ 1 $ と人 $ 2 $ です。最強のプログラマーを一意に特定できないので `-1` を出力してください。