나만 안되는 연애

남초 학교와 여초 학교를 잇는 도로만 사용해 모든 학교를 연결하는 최소 신장 트리의 길이를 구하고, 불가능하면 -1을 출력한다.

보통5그래프최소 신장 트리유니온 파인드그리디아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

깽미는 24살 모태솔로다. 이대로 대마법사가 될 수는 없다고 생각한 깽미는 자신의 프로그래밍 실력으로 미팅 애플리케이션을 만들기로 했다. 이 앱은 대학생을 대상으로 하며, 대학교 사이의 도로 데이터를 모아서 만들었다.

앱은 사용자에게 사심 경로를 제공한다. 사심 경로는 다음 세 조건을 만족한다.

  1. 사용자의 사심을 채우기 위해 남초 대학교와 여초 대학교를 잇는 도로로만 이루어진다.
  2. 사용자가 다양한 사람과 미팅할 수 있도록 어느 대학교에서 출발하든 모든 대학교로 이동할 수 있다.
  3. 시간을 낭비하지 않도록 경로에 포함된 도로 길이의 합이 가장 작아야 한다.

예를 들어 도로 데이터가 왼쪽 그림과 같다면, 오른쪽 그림의 보라색 선처럼 경로를 구성하면 위의 세 조건을 모두 만족한다.

주어진 도로 데이터로 사심 경로의 길이를 구해 보자.

입력

첫째 줄에 학교의 수 NN과 학교를 잇는 도로의 수 MM이 주어진다. (2N10002 \le N \le 1\,000, 1M100001 \le M \le 10\,000)

둘째 줄에 NN개의 문자가 공백으로 구분되어 주어진다. ii번째 문자는 ii번 학교가 남초 대학교이면 M, 여초 대학교이면 W이다.

다음 MM개의 줄에는 각각 세 정수 uu, vv, dd가 주어진다. uu번 학교와 vv번 학교가 길이 dd인 도로로 이어져 있다는 뜻이다. (1u,vN1 \le u, v \le N, 1d10001 \le d \le 1\,000)

출력

깽미가 만든 앱의 사심 경로 길이를 출력한다. 조건을 만족하는 도로만으로 모든 학교를 연결할 수 없다면 -1을 출력한다.