수로 건설

아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

브리타니아를 정복한 로마 장군 아그리콜라는 새로 얻은 도시마다 그 지방에 널린 샘물을 끌어오기로 했다. 참모 웨수스 와테루스가 수로 설계를 맡았다.

샘과 도시 사이에는 언덕과 골짜기가 있다. 수로는 구간을 이어 붙여 만들고, 모든 구간은 한 언덕 꼭대기에서 시작해 다른 언덕 꼭대기에서 끝난다. 물은 아래로만 흐르므로 구간은 반드시 더 높은 언덕에서 더 낮은 언덕으로 놓는다. 높이가 같은 두 언덕 사이에는 구간을 놓을 수 없다. 구간 아래에 언덕이나 샘, 도시가 있어도 상관없다. 그대로 뚫고 지나갈 수 있다. 다만 로마의 기술로 놓을 수 있는 구간 하나의 길이는 qq 이하다.

구간의 길이는 두 언덕 꼭대기 사이의 3차원 유클리드 거리 (x1x2)2+(y1y2)2+(h1h2)2\sqrt{(x_1-x_2)^2+(y_1-y_2)^2+(h_1-h_2)^2}이다. 샘에서 도시까지 이어지는 수로의 길이는 그 수로를 이루는 구간 길이의 합이다.

도시는 저마다 다른 샘에서 물을 받아야 하고, 한 샘이 두 도시를 맡을 수는 없다. 수로끼리 서로 교차해도 된다. 모든 도시에 물을 대는 수로 길이의 합을 가장 작게 만들어라.

입력

첫째 줄에 정수 nn, ss, tt, qq가 주어진다. nn은 언덕의 수 (0<n5000 < n \le 500), ss는 샘의 수 (1s401 \le s \le 40), tt는 도시의 수 (1ts1 \le t \le s), qq는 구간 하나의 최대 길이 (1q3×1061 \le q \le 3 \times 10^6)다.

다음 nn개 줄에는 언덕의 좌표와 높이를 나타내는 정수 xix_i, yiy_i, hih_i가 공백으로 구분되어 주어진다 (0xi,yi,hi1060 \le |x_i|, |y_i|, h_i \le 10^6). 언덕 번호는 주어진 순서대로 1번부터 nn번이다.

다음 줄에는 정수 ss개가 공백으로 구분되어 주어진다. 샘이 있는 언덕의 번호다.

다음 줄에는 정수 tt개가 공백으로 구분되어 주어진다. 도시가 있는 언덕의 번호다.

한 언덕에 샘이나 도시는 최대 하나만 있다.

출력

모든 도시가 서로 다른 샘에서 물을 받도록 할 때 수로 길이 합의 최솟값을 소수점 아래 여섯 자리까지 반올림해 한 줄에 출력한다. 그렇게 물을 댈 방법이 없으면 IMPOSSIBLE을 출력한다.