만남의 장소
면접 대비시간 제한0.5초메모리 제한1024 MB
가중치가 있는 도로망에서 P에서 X까지 최단 거리가 P에서 G까지 최단 거리의 두 배이고, 모든 최단 경로가 G를 지나는 교차로 X를 모두 찾습니다.
문제
페드로는 단체 활동을 무척 좋아해서, 모임 장소까지 아주 빠르게 달려간다. 그래서 도착하기 전에 지쳐 버린다.
어느 날 이 현상을 조사해 보니, 그는 늘 이동 경로의 정확히 중간 지점에서 지쳤다. 즉, 가야 할 거리의 절반을 이동했을 때 지친다.
도시에는 1번부터 번까지 번호가 붙은 교차로가 개 있고, 양방향 도로가 개 있다. 각 도로는 길이가 정해져 있으며 두 교차로를 잇는다. 도시의 어떤 두 교차로 사이에도 도로를 따라 가는 경로가 있다. 두 교차로 사이의 거리는 두 교차로를 잇는 최단 경로의 길이다.
페드로는 교차로 에 살고, 친구들은 오늘 늦게 교차로 에서 만나기로 했다. 페드로가 제시간에 도착하도록 다음과 같은 계획을 세웠다. 페드로에게 잘못된 모임 장소를 알려 주어서, 그가 정확히 에서 지치도록 만드는 것이다. 계획이 성립하려면, 교차로 가 페드로가 에서 잘못된 모임 장소까지 갈 수 있는 모든 경로에 포함되어야 한다. 그리고 그 경로마다 페드로가 정확히 에서 지쳐야 한다. 페드로는 계획을 잘 세우는 사람이라서 필요 이상으로 긴 경로는 택하지 않는다.
그렇다면 잘못된 모임 장소로 쓸 수 있는 교차로는 어디인가?
입력
첫 줄에 두 정수 ()과 ()이 주어진다. 각각 교차로의 수와 도로의 수다. 각 교차로는 부터 까지의 서로 다른 정수로 구분된다.
둘째 줄에 두 정수 와 (, )가 주어진다. 페드로가 사는 교차로와 올바른 모임 장소다.
이어지는 개의 줄에는 도로 정보가 한 줄에 하나씩 주어진다. 세 정수 , , (, , )는 교차로 와 를 잇는 길이 인 양방향 도로가 있다는 뜻이다.
주어진 도로로 모든 교차로 쌍 사이에 경로가 존재한다. 두 교차로를 잇는 도로는 최대 하나다.
출력
잘못된 모임 장소로 쓸 수 있는 교차로의 번호를 오름차순으로 한 줄에 출력한다. 그런 교차로가 없으면 문자 * (별표)를 출력한다.