Obtiažnosť: stredná

Topologické usporiadanie

Majme orientovaný graf $G$ s $n$ vrcholmi očíslovanými $1$ až $n$. Permutáciu $a_1,...,a_n$ čísel $1$ až $n$ nazývame topologickým usporiadaním grafu $G$, ak pre každú hranu z vrcholu $i$ do vrcholu $j$ platí, že číslo $i$ je v permutácii naľavo od čísla $j$. Ľudskejšie povedané, ak si zoberieme vrcholy grafu a poukladáme ich zľava doprava v takom poradí, ako nám diktuje permutácia, všetky hrany musia byť šípky smerujúce doprava.

Úloha

Daný je orientovaný graf. Nájdite jedno jeho topologické usporiadanie, alebo vyhláste že neexistuje.

Vstup

V prvom riadku vstupu sú dve celé čísla $1 \leq n \leq 10^5$ a $0 \leq m \leq 3 \cdot 10^5$ - počet hrán. Nasleduje $m$ riadkov, každý s dvoma celými číslami $1 \leq x_i, y_i \leq n$. Riadok $i$ hovorí o existencii orientovanej hrany z $x_i$ do $y_i$. Graf neobsahuje žiadne slučky ani duplicitné hrany.

Výstup

Ak neexistuje topologické usporiadanie zadaného grafu, vypíšte $-1$. Inak vypíšte permutáciu $a_1,...,a_n$ ako je popísana vyššie.

Príklady

Vstup

5 5
4 3
5 3
3 2
3 1
5 1

Výstup

4 5 3 2 1

Správna odpoveď je napríklad aj $5\ 4\ 3\ 1\ 2$.

Vstup

3 3
1 2
2 3
3 1

Výstup

-1