철수가 사는 동네에는 개의 공원이 있고, 각각 두 개의 서로 다른 공원을 양방향으로 연결하는 길들이 개 있다. 각 길의 길이를 알고 있다고 하자. 공원들은 부터 까지 번호가 붙어 있다.
철수는 현재 공원 에 있다. 철수는 서로 다른 두 개의 공원 와 공원 를 정해서 공원 에서 공원 로, 공원 에서 공원 로, 다시 공원 에서 공원 로 돌아오려고 한다. 모든 과정에서 전체 이동 거리가 가장 작도록 이동한다. 단, 와 는 서로 같지 않고, 와 도 서로 같지 않다.
위의 과정에서 같은 공원을 여러 번 지나는 것은 허용되지만, 중간에 공원 를 지나는 것은 허용되지 않는다.
가능한 와 를 정하는 모든 방법에 대해서 전체 이동 거리가 가장 짧은 것을 찾아 그 길이를 출력하는 프로그램을 작성하시오.
아래 그림은 입력 예제의 경우를 보여 준다. , 으로 정하면 총 의 거리를 이동하여 위의 조건을 만족할 수 있다.

입력 형식
첫 줄에 공원의 수와 길의 수, 현재 공원의 번호를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. ( )
이어지는 개의 줄의 각 줄에 길의 정보를 나타내는 세 정수 , , 가 공백으로 구분되어 주어진다. ( )
이는 공원 와 공원 사이를 양방향으로 연결하는 길이 인 길이 존재함을 의미한다.
답이 불가능한 경우는 입력으로 주어지지 않는다.
출력 형식
첫 줄에 답이 되는 정수를 출력한다.
예제
입력
6 10 5 1 4 2 2 1 2 4 6 10 1 4 4 4 3 8 4 5 9 3 4 9 5 6 3 3 6 2 1 4 1
출력
10
채점 방식
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 32점
종류 2: 24점
종류 3: 44점
추가적인 제한 조건이 없음.
해설
이 문제 풀이의 핵심 아이디어는 두 정점 와 를 서로 인접한 정점으로 잡아도 답을 올바르게 구할 수 있다는 것입니다.
즉, 에서 각 정점으로 가는 최단 거리를 구한 뒤, 정점 와 정점 를 연결하는 길이 인 간선이 있다면, 정점 에서 로 가는 최단 거리 정점 에서 로 가는 최단 거리 를 구하고, 그중 가장 작은 값을 구하면 답이 됩니다.