겹치지 않는 n개의 정육면체 후보 위치 중 k개를 골라 연결된 다면체를 만들 때, 합집합의 겉넓이가 최소가 되는 값을 구한다.
보통7그래프BFS조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB3D 프린팅으로 정육면체를 이어 붙인 설치 미술 작품을 만들어 Installation art Contest with Printed Cubes(ICPC)에 출품하려고 한다. 작품은 크기가 같고 방향도 같은 정육면체 정확히 k개로 이루어진다.
먼저 CAD로 3차원 공간에 정육면체를 놓을 후보 위치 n개를 잡는다(n≥k). 후보 위치 전부에 정육면체를 놓으면 다음 세 조건이 성립한다.
이제 후보 n개 중 서로 다른 위치 k개를 골라 정육면체를 놓는다. 이때 정육면체 k개의 합집합은 연결된 다면체여야 한다. 3D 프린터는 보통 물체의 얇은 겉면만 출력하므로, 필라멘트를 아끼려면 겉넓이가 가장 작은 다면체를 골라야 한다.
후보 n개 중 k개를 골라 만들 수 있는 연결된 다면체 가운데 겉넓이가 가장 작은 것의 겉넓이를 구하라.

그림 1. 같은 정육면체를 이어 붙여 만든 다면체.
입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합은 최대 100개다. 각 데이터 집합의 형식은 다음과 같다.
n k s
x1 y1 z1
...
xn yn zn
첫 줄의 n은 후보 위치의 개수, k는 연결된 다면체를 이룰 정육면체의 개수, s는 정육면체 한 변의 길이다. n, k, s는 공백으로 구분한 정수다. 이어지는 n개의 줄은 후보 위치 n개를 나타낸다. i번째 줄의 정수 xi, yi, zi는 그 위치에 정육면체를 놓았을 때 좌표가 가장 작은 꼭짓점의 좌표이며, 공백으로 구분한다. 정육면체의 모서리는 세 좌표축 가운데 하나와 나란하다.
1≤k≤n≤2000, 3≤s≤100, −4×107≤xi,yi,zi≤4×107이다. 후보 위치는 위에 적은 세 조건을 항상 만족한다.
입력의 끝은 공백으로 구분한 0 세 개가 있는 줄이다.
각 데이터 집합마다 겉넓이가 가장 작은 연결된 다면체의 겉넓이를 정수 하나로 한 줄에 출력한다. 정육면체 k개로 연결된 다면체를 만들 수 없으면 -1을 출력한다.