노드 1로 가는 최단 경로가 유일한 그래프에서 각 교차로의 표지판은 최단 경로 방향을 가리킨다. 표지판이 가리키는 도로를 절대 택하지 않으면서 0에서 1로 가는 단순 경로 중 가장 짧고 사전순으로 가장 작은 경로를 찾는다.
델프트에서 암스테르담까지 버스로 이동한다. 가는 길의 모든 교차로에는 암스테르담까지 가는 최단 경로 방향을 가리키는 표지판이 서 있다. 그런데 이 버스는 표지판이 가리키는 도로로 한 번도 들어가지 않는다.
이런 버스 노선이 존재하는지 판정하라. 버스 노선은 델프트에서 출발해 암스테르담에서 끝나고, 같은 교차로를 두 번 지나지 않는다. 노선 위의 교차로 가운데 암스테르담을 뺀 모든 교차로에서, 버스가 이어서 지나는 도로는 그 교차로의 표지판이 가리키는 도로와 달라야 한다.
도로망은 단순하고 연결된 무방향 그래프이고, 모든 교차로에서 암스테르담까지 가는 최단 경로는 유일하다. 교차로의 표지판은 그 최단 경로의 첫 번째 도로를 가리킨다.
첫 줄에 교차로의 수 nnn (2≤n≤1052 \le n \le 10^52≤n≤105)과 도로의 수 mmm (1≤m≤1061 \le m \le 10^61≤m≤106)이 공백으로 구분되어 주어진다. 교차로 번호는 000부터 n−1n-1n−1까지이며, 델프트가 000번, 암스테르담이 111번이다.
다음 mmm개 줄에 도로가 한 줄에 하나씩 세 정수 aia_iai, bib_ibi (0≤ai,bi<n0 \le a_i, b_i < n0≤ai,bi<n, ai≠bia_i \ne b_iai=bi), did_idi (0≤di≤5000000 \le d_i \le 5000000≤di≤500000)로 주어진다. 교차로 aia_iai와 교차로 bib_ibi를 잇는 도로이고, 어느 방향으로 지나든 길이는 did_idi다.
조건을 만족하는 노선이 없으면 impossible을 출력한다.
있으면 노선을 한 줄에 출력한다. 먼저 노선이 지나는 교차로의 수 kkk를 출력하고, 이어서 버스가 지나는 순서대로 교차로 번호 p0,…,pk−1p_0, \dots, p_{k-1}p0,…,pk−1을 출력한다. 여기서 p0=0p_0 = 0p0=0이고 pk−1=1p_{k-1} = 1pk−1=1이다.
조건을 만족하는 노선이 여러 개일 수 있다. 그중 지나는 교차로의 수가 가장 적은 노선을 출력한다. 그런 노선이 여러 개면 수열 p0,…,pk−1p_0, \dots, p_{k-1}p0,…,pk−1이 사전순으로 가장 앞서는 노선을 출력한다.