우회 노선

노드 1로 가는 최단 경로가 유일한 그래프에서 각 교차로의 표지판은 최단 경로 방향을 가리킨다. 표지판이 가리키는 도로를 절대 택하지 않으면서 0에서 1로 가는 단순 경로 중 가장 짧고 사전순으로 가장 작은 경로를 찾는다.

보통7그래프최단 경로BFS그리디아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

델프트에서 암스테르담까지 버스로 이동한다. 가는 길의 모든 교차로에는 암스테르담까지 가는 최단 경로 방향을 가리키는 표지판이 서 있다. 그런데 이 버스는 표지판이 가리키는 도로로 한 번도 들어가지 않는다.

이런 버스 노선이 존재하는지 판정하라. 버스 노선은 델프트에서 출발해 암스테르담에서 끝나고, 같은 교차로를 두 번 지나지 않는다. 노선 위의 교차로 가운데 암스테르담을 뺀 모든 교차로에서, 버스가 이어서 지나는 도로는 그 교차로의 표지판이 가리키는 도로와 달라야 한다.

도로망은 단순하고 연결된 무방향 그래프이고, 모든 교차로에서 암스테르담까지 가는 최단 경로는 유일하다. 교차로의 표지판은 그 최단 경로의 첫 번째 도로를 가리킨다.

입력

첫 줄에 교차로의 수 nn (2n1052 \le n \le 10^5)과 도로의 수 mm (1m1061 \le m \le 10^6)이 공백으로 구분되어 주어진다. 교차로 번호는 00부터 n1n-1까지이며, 델프트가 00번, 암스테르담이 11번이다.

다음 mm개 줄에 도로가 한 줄에 하나씩 세 정수 aia_i, bib_i (0ai,bi<n0 \le a_i, b_i < n, aibia_i \ne b_i), did_i (0di5000000 \le d_i \le 500000)로 주어진다. 교차로 aia_i와 교차로 bib_i를 잇는 도로이고, 어느 방향으로 지나든 길이는 did_i다.

출력

조건을 만족하는 노선이 없으면 impossible을 출력한다.

있으면 노선을 한 줄에 출력한다. 먼저 노선이 지나는 교차로의 수 kk를 출력하고, 이어서 버스가 지나는 순서대로 교차로 번호 p0,,pk1p_0, \dots, p_{k-1}을 출력한다. 여기서 p0=0p_0 = 0이고 pk1=1p_{k-1} = 1이다.

조건을 만족하는 노선이 여러 개일 수 있다. 그중 지나는 교차로의 수가 가장 적은 노선을 출력한다. 그런 노선이 여러 개면 수열 p0,,pk1p_0, \dots, p_{k-1}이 사전순으로 가장 앞서는 노선을 출력한다.