말뚝 좌표 복원

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

문제

새 수학관을 지을 잔디밭에 말뚝들이 박혀 있고, 이 말뚝들의 좌표를 복원하려고 한다.

측량 결과, 처음 세 말뚝은 직각을 낀 두 변의 길이가 각각 $1$미터이고 빗변의 길이가 $\sqrt{2}$미터인 직각삼각형을 이룬다. 이 세 말뚝을 각각 좌표 $(0,0)$, $(0,1)$, $(1,0)$에 놓는다. 즉 $1$번, $2$번, $3$번 말뚝은 각각 $(0,0)$, $(0,1)$, $(1,0)$에 있다. 나머지 말뚝들도 모두 격자점(좌표가 정수인 점)에 정확히 놓인다.

삼각형 측량 자료가 주어질 때, 모든 말뚝의 좌표를 구하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 두 정수 $n$과 $m$이 주어진다. 두 값은 모두 $1$ 이상 $1000$ 이하이다. $n$은 뒤따르는 줄의 개수이고, $m$은 말뚝의 개수이다. 말뚝은 $1$번부터 $m$번까지 번호가 매겨지며, 모든 말뚝의 위치는 서로 다르다. 각 말뚝의 $x$, $y$ 좌표는 $-1000000$ 이상 $1000000$ 이하이다.

이어지는 $n$개의 줄에는 각각 여섯 개의 정수 $a$, $b$, $c$, $x$, $y$, $z$가 주어진다. $a$, $b$, $c$는 세 말뚝의 번호이며, 항상 반시계 방향 순서로 나열된다. 즉 말뚝 $a$에서 $b$를 거쳐 $c$로 이동하면 $b$에서 왼쪽으로 돈다. $x$는 말뚝 $a$와 $b$ 사이 거리의 제곱, $y$는 말뚝 $b$와 $c$ 사이 거리의 제곱, $z$는 말뚝 $c$와 $a$ 사이 거리의 제곱이다.

모든 말뚝은 입력의 적어도 한 줄에 등장한다. 또한 임의의 두 말뚝 $a$, $b$에 대해, 입력의 삼각형들 중 일부가 수열 $T_1, T_2, \ldots, T_n$을 이루어, 모든 $0 < i < n$에 대해 $T_i$와 $T_{i+1}$이 두 개의 꼭짓점을 공유하고, $a$가 $T_1$의 꼭짓점이며 $b$가 $T_n$의 꼭짓점이 되도록 할 수 있다. 입력의 마지막 줄은 $0\ 0$이며, 이 두 값은 $n$, $m$이 아니므로 처리하지 않는다.

출력

각 테스트 케이스마다 정확히 $m$개의 줄을 출력한다. 이 $m$개의 줄은 $1$번부터 $m$번까지 말뚝의 좌표를 순서대로 나타내며, 각 줄에는 해당 말뚝의 $x$ 좌표와 $y$ 좌표를 공백으로 구분해 출력한다. 각 테스트 케이스의 첫 세 줄은 항상 다음과 같다.

0 0
0 1
1 0