Da bi se sklopio automobil, treba obaviti čitav spisak poslova, a neki od njih zavise od drugih - osovine moraju da se ugrade pre točkova. Tvoj zadatak je da nađeš redosled u kom se svih poslova može obaviti, a da nijedan posao ne krene pre onoga od koga zavisi.
Poslovi su označeni brojevima od do . Obično je moguće više redosleda, pa ispiši leksikografski najmanji: od svih ispravnih redosleda onaj kome je prvi broj najmanji, a među njima onaj kome je drugi broj najmanji, i tako dalje.
Ulaz
U prvoj liniji ulaza je jedan ceo broj - broj test primera.
U prvoj liniji svakog test primera su dva cela broja i - broj poslova i broj zavisnosti.
U svakoj od sledećih linija su dva cela broja i , što znači da posao mora da se obavi pre posla . Obrati pažnju na redosled: posao koji je u liniji drugi je onaj koji ide prvi.
Garantuje se da redosled postoji.
Izlaz
Za svaki test primer ispiši u posebnoj liniji svih brojeva poslova u leksikografski najmanjem ispravnom redosledu, razdvojene sa po jednim razmakom.
Primer
1 6 6 3 1 3 2 4 2 4 5 1 0 0 5
2 5 0 1 3 4
Samo poslovi i nemaju ništa pre sebe, a je manji, pa ide prvi. Time se ništa novo ne oslobađa, pa sledi , koji oslobađa i i - a je manji. Posao mora da čeka da se završe i i , a posao da se završe i .
Ograničenja
i
Zbir preko svih test primera ne prelazi , a zbir ne prelazi
Zadatak je, uz dozvolu, preuzet iz zadatka Redosled poslova, čiji su autori Društvo matematičara Srbije i Fondacija Petlja.