Zoznam úloh

5. Idem, padám, balancujem

Kolo už skončilo. Môžeš si pozrieť vzorové riešenie.

Krtko sa chce dostať z tej masívnej KSP párty domov, ale keďže sa prejedol torty, tak sa len tak kotúľa. Snaží sa kráčať, no každým krokom sa bojí, že sa preváži a spadne. Preto, koľko krokov spraví pravou nohou, toľko ich musí spraviť aj ľavou, aby to nejak vybalansoval. Ale keďže je hrooozne najedený, tak sa nechce úplne nachodiť.

Úloha

Daný je graf s $n$ vrcholmi, očíslovanými od $1$ po $n$, ktorého vrcholy reprezentujú Krtkove pozície na ceste domov po krokoch – čo vrchol, to krok (kam Krtko spraví krok, tam sa posunie celým telom; nemôže byť nohami v dvoch vrcholoch naraz). V grafe sú samozrejme aj nejaké iné možnosti krokov, kam nie nutne musí stúpiť. Hrana z $a$ do $b$ znamená, že z vrcholu $a$ vie do $b$ prejsť na jeden krok.

Nájdite cestu párnej dĺžky z vrcholu číslo $1$ (miesto, kde bola párty) do vrcholu číslo $n$ (miesto, kde Krtko býva), kratšiu ako $2n$ (nechce sa predsa nachodiť). Krtko sa samozrejme ale vie stratiť a zamotať, a teda môže prejsť v grafe cez vrchol aj viackrát a po hranách tiež.

Formát vstupu

V prvom riadku vstupu sú čísla $n$ ($1 \leq n \leq 10^5$) počet vrcholov, a $m$ ($1 \leq m \leq 10^6$) počet hrán.

Nasleduje $m$ riadkov popisujúcich hrany. V každom z nich sú dve čísla oddelené medzerou, čísla vrcholov medzi ktorými je hrana.

Pre sady vstupov platia nasledovné obmedzenia:

Sada 1 2 3 4
$n \leq$ $10$ $100$ $1\,000$ $10^5$
$m \leq$ $10$ $1\,000$ $10^4$ $10^6$

Formát výstupu

Na jeden riadok vypíšte zaradom čísla vrcholov cez ktoré Krtkova cesta prechádza – do ktorých Krtko spraví krok, oddelené medzerou (vrátane vrcholu $1$ a $n$). Ak žiadna vyhovujúca postupnosť neexistuje vypíšte $-1$.

Príklady

Input:

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

Output:

1 6 3 2 4 3 6

Input:

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

Output:

-1
Pre odovzdávanie sa musíš prihlásiť.
Trojsten

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty