시기는 비디오 게임을 아주 좋아해서 요즘 슈퍼 마리오 169만 붙잡고 있다. 슈퍼 마리오 64의 잘 알려지지 않은 후속작이다. 무대가 전부 바다 속이라 3차원 좌표 공간으로 나타낼 수 있다. 플레이어는 마리오가 되어 헤엄치면서 코인을 전부 모아야 하고, 코인은 최대 169개까지 나온다.
코인이 처음부터 보이지는 않는다. 바다에는 스위치가 최대 13개 있고, 마리오가 스위치에 닿으면 스위치가 눌린다. 스위치를 하나 누르면 코인이 최대 13개 나타난다. 스위치는 각각 한 번만 누를 수 있다. 그리고 스위치를 누르는 순간, 바로 앞에 누른 스위치가 꺼냈던 코인 중 아직 줍지 않은 것은 모두 사라져서 다시는 주울 수 없다. 스위치와 코인은 모두 크기가 없는 점으로 생각한다.
마리오는 코인을 하나도 남기지 않고 모아야 하므로 스위치 n개를 전부 누르고, 다음 스위치를 누르기 전에 지금 스위치가 꺼낸 코인을 모두 주워야 한다. 시기는 마리오가 헤엄쳐야 하는 거리의 최솟값을 알고 싶다.
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 정수 네 개가 주어진다.
n mx my mz
n (1≤n≤13)은 스위치의 개수이고, 점 (mx,my,mz)는 마리오의 시작 위치이다.
이어서 아래 형식이 스위치마다 한 번씩, 모두 n번 반복된다. 먼저 한 줄에 정수 네 개가 주어진다.
k sx sy sz
k (1≤k≤13)는 이 스위치가 꺼내는 코인의 개수이고, 점 (sx,sy,sz)는 스위치의 위치이다. 그 다음 k개의 줄에 정수 세 개가 주어진다.
cx cy cz
(cx,cy,cz)는 이 스위치가 꺼내는 코인 하나의 위치이다.
모든 좌표는 −1000≤x,y,z≤1000을 만족한다. 한 테스트 케이스 안에서 마리오의 시작 위치, 스위치의 위치, 코인의 위치는 서로 모두 다르다. 입력의 마지막 줄에는 0이 네 개 주어진다.
각 테스트 케이스마다 마리오가 코인을 전부 모으는 데 필요한 최소 이동 거리를 한 줄에 하나씩 출력한다. 소수점 아래 셋째 자리에서 반올림해서 소수점 아래 둘째 자리까지 정확히 출력한다. 공백이나 빈 줄은 출력하지 않는다.