우회 노선
시간 제한2초메모리 제한512 MB
노드 1로 가는 최단 경로가 유일한 그래프에서 각 교차로의 표지판은 최단 경로 방향을 가리킨다. 표지판이 가리키는 도로를 절대 택하지 않으면서 0에서 1로 가는 단순 경로 중 가장 짧고 사전순으로 가장 작은 경로를 찾는다.
문제
델프트에서 암스테르담까지 버스로 이동한다. 가는 길의 모든 교차로에는 암스테르담까지 가는 최단 경로 방향을 가리키는 표지판이 서 있다. 그런데 이 버스는 표지판이 가리키는 도로로 한 번도 들어가지 않는다.
이런 버스 노선이 존재하는지 판정하라. 버스 노선은 델프트에서 출발해 암스테르담에서 끝나고, 같은 교차로를 두 번 지나지 않는다. 노선 위의 교차로 가운데 암스테르담을 뺀 모든 교차로에서, 버스가 이어서 지나는 도로는 그 교차로의 표지판이 가리키는 도로와 달라야 한다.
도로망은 단순하고 연결된 무방향 그래프이고, 모든 교차로에서 암스테르담까지 가는 최단 경로는 유일하다. 교차로의 표지판은 그 최단 경로의 첫 번째 도로를 가리킨다.
입력
첫 줄에 교차로의 수 ()과 도로의 수 ()이 공백으로 구분되어 주어진다. 교차로 번호는 부터 까지이며, 델프트가 번, 암스테르담이 번이다.
다음 개 줄에 도로가 한 줄에 하나씩 세 정수 , (, ), ()로 주어진다. 교차로 와 교차로 를 잇는 도로이고, 어느 방향으로 지나든 길이는 다.
출력
조건을 만족하는 노선이 없으면 impossible을 출력한다.
있으면 노선을 한 줄에 출력한다. 먼저 노선이 지나는 교차로의 수 를 출력하고, 이어서 버스가 지나는 순서대로 교차로 번호 을 출력한다. 여기서 이고 이다.
조건을 만족하는 노선이 여러 개일 수 있다. 그중 지나는 교차로의 수가 가장 적은 노선을 출력한다. 그런 노선이 여러 개면 수열 이 사전순으로 가장 앞서는 노선을 출력한다.