바빌론의 탑

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

문제

바빌로니아 사람들은 $n$가지 종류의 블록을 가지고 있으며, 각 종류의 블록은 무한히 공급된다. 종류 $i$의 블록은 세 변의 길이가 $(x_i, y_i, z_i)$인 직육면체이다. 블록은 회전시켜 세 변 중 임의의 두 변을 밑면으로, 나머지 한 변을 높이로 삼을 수 있다.

이 블록들을 쌓아 가능한 한 높은 탑을 만들려고 한다. 단, 어떤 블록을 다른 블록 위에 올리려면 위쪽 블록 밑면의 두 변의 길이가 아래쪽 블록 밑면의 대응하는 두 변의 길이보다 모두 엄격히 작아야 한다. 따라서 밑면의 크기가 같은 두 블록은 서로 쌓을 수 없다.

주어진 블록들로 만들 수 있는 가장 높은 탑의 높이를 구하는 프로그램을 작성하라.

입력

입력은 하나 이상의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 블록 종류의 수를 나타내는 정수 $n$이 주어진다($n$의 최댓값은 30). 이어지는 $n$개의 줄에는 각각 세 정수 $x_i$, $y_i$, $z_i$가 주어진다.

입력은 $n$이 $0$인 줄로 끝난다.

출력

각 테스트 케이스마다 케이스 번호(1부터 순서대로 매긴다)와 만들 수 있는 가장 높은 탑의 높이를 다음 형식으로 한 줄에 출력한다.

Case c: maximum height = h