인접한 변

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

문제

삼각형의 인접 관계는 컴퓨터 그래픽스에서 자주 등장하는 문제입니다. 모델링 소프트웨어는 3차원 모델을 삼각형의 목록으로 출력하는 경우가 많습니다. 예를 들어 아래 그림의 정사면체는 삼각형 모양의 면 4개로 이루어져 있습니다. 각 삼각형은 세 꼭짓점의 좌표로 표현되며, 입체를 바로 바깥에서 바라보는 관찰자의 시점에서 시계 방향 순서로 나열됩니다. 정확한 파일 형식은 아래 입력 부분에서 설명합니다.

이 표현만으로도 많은 용도에는 충분하지만, 일부 그래픽스 알고리즘은 어떤 삼각형들이 서로 인접해 있는지, 즉 어떤 삼각형들이 변을 공유하는지 알아야 합니다. 여기서 여러분이 할 일은 주어진 각 모델에 대해 이 정보를 계산하는 것입니다. 인접한 삼각형을 계산하는 과정을 통해, 모든 삼각형의 모든 변이 다른 삼각형의 변 하나와 정확히 짝을 이루는지 확인할 수도 있습니다. 이는 모델이 빈틈이나 구멍 없이 완전히 닫힌 껍질을 이루는지 검사하는 한 가지 방법입니다.

모델의 어떤 면이든 최대 세 개의 인접 삼각형을 가질 수 있으며, 각각과 변 하나씩을 공유합니다. 올바르게 구성된 모델에서 모든 변은 정확히 두 삼각형에 나타나며, 공유되는 변의 두 끝점은 두 삼각형 각각을 시계 방향으로 돌 때 서로 반대 순서로 나타납니다.

꼭짓점이 입력에 주어진 순서대로 $V_0$, $V_1$, $V_2$인 삼각형을 생각해 봅시다. 이 삼각형의 세 변은 $V_0V_1$, $V_1V_2$, $V_2V_0$입니다. $V_0V_1$ 변을 공유하는 삼각형의 나머지 꼭짓점을 $V_3$, $V_1V_2$ 변을 공유하는 삼각형의 나머지 꼭짓점을 $V_4$, $V_2V_0$ 변을 공유하는 삼각형의 나머지 꼭짓점을 $V_5$라고 합시다. 각 삼각형에 대해 $V_0, V_1, V_2, V_3, V_4, V_5$를 출력합니다. 어떤 변을 따라 이웃한 삼각형이 없으면, 그 꼭짓점 번호 자리에 대문자 X를 출력합니다.

입력

입력에는 여러 개의 3차원 모델이 들어 있습니다. 각 모델의 첫 줄은 정수 $T$ ($1 \le T \le 400000$) 하나로, 그 모델에 있는 삼각형의 개수입니다. 이어서 $3T$개의 줄이 나오는데(삼각형 하나당 세 줄), 각 줄에는 한 꼭짓점의 $x$, $y$, $z$ 좌표가 쉼표와 공백으로 구분되어 주어집니다. 각 삼각형의 세 꼭짓점은 시계 방향 순서로 나열됩니다.

좌표는 지수 표기를 포함한 부동소수점 값일 수 있으므로 정수라고 가정해서는 안 됩니다. 같은 꼭짓점이 여러 번 나타날 때는 항상 완전히 동일한 문자열로 적혀 있으며, 서로 다른 두 꼭짓점은 단정밀도(32비트) 부동소수점으로 나타냈을 때 서로 다르다는 것이 보장됩니다. 모든 좌표는 $-2$ 이상 $2$ 이하의 범위에 있습니다.

입력은 $T$ 자리에 0 하나만 있는 줄로 끝납니다.

출력

각 모델 안에서, 서로 다른 꼭짓점에 그 모델의 입력에 처음 등장하는 순서대로 $0$번부터($0$, 그다음 $1$, $2$, $3$, …) 번호를 매깁니다. 출력에는 좌표 값 대신 이 꼭짓점 번호를 사용하며, 번호 매기기는 모델마다 다시 $0$부터 시작합니다.

모델은 읽은 순서대로 출력합니다. 연속한 두 모델 사이는 빈 줄 하나로 구분하되, 첫 모델 앞이나 마지막 모델 뒤에는 빈 줄을 출력하지 않습니다. 각 모델에 대해 삼각형 하나당 한 줄씩(총 $T$줄), 삼각형을 읽은 순서 그대로 출력합니다.

각 삼각형 줄의 형식은 다음과 같습니다.

i: V0 V1 V2 V3 V4 V5

여기서 $i$는 삼각형의 번호($0, 1, 2, \dots$)이며 그 뒤에 콜론과 공백이 옵니다. $V_0, V_1, V_2$는 그 삼각형 자신의 꼭짓점 번호를 입력 순서대로 나열한 것이고, $V_3, V_4, V_5$는 각각 변 $V_0V_1$, $V_1V_2$, $V_2V_0$을 따라 인접한 삼각형의 나머지 꼭짓점입니다. 이웃이 없는 경우에는 대문자 X를 출력합니다. 한 줄 안의 모든 값은 공백 하나로 구분합니다.