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ť.
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ž.
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$ |
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$.
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
Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.
Trojsten, o.z.
FMFI UK, Mlynská dolina
842 48 Bratislava
Programátorská súťaž pre základoškolákov
Materiály a úlohy na výučbu programovania
Intenzívny programátorský zážitok v lete