사격 연습

시간 제한1초메모리 제한128 MB

문제

넓은 들판 곳곳에 기둥이 박혀 있고, 각 기둥 꼭대기에는 풍선이 하나씩 놓여 있다. 기둥의 높이가 모두 같은 것은 아니다. 사수는 들판을 돌아다니며 풍선을 향해 총을 쏘고, 되도록 적은 발수로 모든 풍선을 터뜨리려 한다.

총알은 완전한 직선으로 날아가며 풍선을 그대로 관통하므로, 한 발은 그 직선 위에 놓인 모든 풍선을 터뜨린다. 잘 조준하면 한 발로 여러 풍선을 터뜨릴 수 있다. 사수는 어느 위치에서든, 어느 높이에서든 쏠 수 있으므로 한 발은 공간 속의 임의의 직선이 될 수 있다. 각 풍선은 하나의 점으로 보며, 총알은 기둥을 통과할 수 있다.

한 들판의 풍선들이 주어질 때, 모든 풍선을 터뜨리는 데 필요한 최소 발수를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 정수 $n$($n \le 50$), 즉 풍선의 개수로 시작한다. $n = 0$이면 입력이 끝난다.

이어서 $n$개의 정수 삼조 $x\ y\ h$가 주어지며, 이는 들판의 위치 $(x, y)$에 높이 $h$로 놓인 풍선을 뜻한다. 모든 정수는 $0$보다 크고 $100$ 이하이며, 두 풍선이 같은 위치 $(x, y)$를 갖지 않는다.

출력

각 테스트 케이스마다 다음 형식으로 한 줄을 출력한다.

Target set k can be cleared using only s shots.

여기서 $k$는 1부터 시작하는 테스트 케이스 번호이고, $s$는 그 집합의 모든 풍선을 터뜨리는 데 필요한 최소 발수이다.