CSES - Asennus
  • Time limit: 4.00 s
  • Memory limit: 128 MB

Uolevi on kuullut Maijalta, että GNU/Linux on parempi käyttöjärjestelmä kuin DOS. Hän ei kuitenkaan halua asentaa valmista Linux-jakelua tai käyttää pakettimanageria, vaan asentaa järjestelmän käsin.

Uolevi yritti ensin vain asentaa kaikki tarvittavat ohjelmat siinä järjestyksessä kun ne tulivat mieleen, mutta sitten hän törmäsi ongelmaan: jotkin ohjelmat tarvitsevat toisia ohjelmia asentuakseen.

Tehtävänäsi on selvittää, missä järjestyksessä Uolevi voi asentaa ohjelmat siten, että jokaisen ohjelman riippuvuudet asennetaan ennen sitä.

Syöte

Syötteen ensimmäisellä rivillä on kokonaisluvut nn ja mm, ohjelmien lukumäärä ja riippuvuuksien lukumäärä. Ohjelmat numeroidaan luvuilla 1n1\ldots n.

Seuraavat mm riviä sisältävät ohjelmien väliset riippuvuudet. Jokaisella rivillä on kaksi lukua aa ja bb, mikä tarkoittaa että ohjelma bb riippuu ohjelmasta aa, ts. ohjelma aa on asennettava ennen ohjelmaa bb.

Tuloste

Mikäli ohjelmat on mahdollista asentaa jossain järjestyksessä, tulosta rivi joka sisältää jonkin mahdollisen järjestyksen.

Muussa tapauksessa tulosta QAQ.

Rajat

  • 2n1052\leq n \leq 10^5
  • 1m1051\leq m \leq 10^5
  • 1a,bn1\leq a, b \leq n
  • aba\neq b

Esimerkki

Syöte:

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

Tuloste:

5 2 3 4 6 1

Myös mikä tahansa muu lukujen 161\ldots 6 permutaatio, jossa esiintyy 5 ennen 2, 2 ennen 4, 5 ennen 3, 3 ennen 4, 3 ennen 1, 2 ennen 1, kelpaa vastaukseksi.