탱크

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

문제

전차 차체는 볼록 다면체이다. 그 안에 주요 부품이 여러 개 들어 있고, 각 부품은 좌표축에 평행한 직육면체이다. 부품은 서로 겹치지 않고 차체 안쪽에 완전히 들어가 있으며, 부품끼리도 차체와도 닿지 않는다.

포탄은 시작점, 방향 벡터, 초기 속도로 주어진다. 시작점은 차체 바깥에 있다. 포탄은 직선을 따라 날아가고, 날아가는 동안 속도는 그대로이다.

차체의 각 면과 부품의 각 면에는 저항 rr과 도탄 임계값 tt가 있다. 한 부품의 여섯 면은 저항도 도탄 임계값도 같다. 포탄이 어떤 면에 닿으면 속도가 그 면의 저항만큼 줄어든다. 줄어든 뒤의 속도가 그 면의 도탄 임계값 이하이면 포탄은 그 면에서 튕겨 나가며, 반사각은 입사각과 같다. 그렇지 않으면 포탄은 그 면을 뚫고 같은 방향으로 계속 날아간다. 포탄은 여러 번 튕길 수 있다.

포탄은 속도가 0 이하로 떨어지는 순간 소멸하고, 뚫거나 튕긴 면의 개수가 DD가 되는 순간에도 소멸한다. 두 경우 모두 마지막으로 닿은 면의 위치에서 소멸하고, 그 뒤로는 어떤 면에도 닿지 않는다.

포탄이 부품 내부를 지나간 경우에만 그 부품을 관통한 것으로 센다. 부품의 면에서 튕기기만 한 것은 관통이 아니다.

포탄은 차체나 부품의 어떤 면의 모서리, 꼭짓점과도 거리 10보다 가까워지지 않고, 어떤 면과 평행하게 움직이면서 그 면을 지나가지도 않는다.

포탄이 관통한 부품과 포탄이 소멸한 위치를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다.

첫째 줄에 두 정수 FFCC가 주어진다 (4F10004 \le F \le 1000, 0C1000 \le C \le 100). FF는 차체를 이루는 면의 개수, CC는 주요 부품의 개수이다.

둘째 줄에 두 정수 DDSS가 주어진다 (1D1001 \le D \le 100, 1S10000001 \le S \le 1000000). DD는 포탄이 뚫거나 튕길 수 있는 면 개수의 한계, SS는 포탄의 초기 속도이다.

셋째 줄에 여섯 정수 aa, bb, cc, dd, ee, ff가 주어진다 (1000000a,b,c,d,e,f1000000-1000000 \le a, b, c, d, e, f \le 1000000). (a,b,c)(a, b, c)는 포탄의 시작점, (d,e,f)(d, e, f)는 포탄의 방향 벡터이다.

이어서 차체의 면 FF개가 주어진다. 각 면은 세 정수 vv, rr, tt가 있는 줄로 시작한다 (3vF3 \le v \le F, 0r,t10000000 \le r, t \le 1000000). vv는 그 면의 꼭짓점 개수, rr은 저항, tt는 도탄 임계값이다. 다음 vv개 줄에는 각각 세 정수 xx, yy, zz가 주어지고 (1000000x,y,z1000000-1000000 \le x, y, z \le 1000000), 그 면의 꼭짓점을 경계를 따라 순서대로 나열한 것이다. 한 면에서 연속한 세 꼭짓점이 한 직선 위에 있는 경우는 없다.

FF개 다음에는 주요 부품마다 한 줄씩 CC개 줄이 주어진다. 각 줄에는 여덟 정수 xx, yy, zz, xsx_s, ysy_s, zsz_s, rr, tt가 주어진다 (1000000x,y,z1000000-1000000 \le x, y, z \le 1000000, 1xs,ys,zs10000001 \le x_s, y_s, z_s \le 1000000, 0r,t10000000 \le r, t \le 1000000). (x,y,z)(x, y, z)는 직육면체의 중심, xsx_s, ysy_s, zsz_s는 세 축 방향의 변 길이, rr은 여섯 면 각각의 저항, tt는 여섯 면 각각의 도탄 임계값이다.

한 줄에 있는 정수는 공백 하나로 구분한다.

출력

각 테스트 케이스마다 다음을 출력한다.

먼저 포탄이 관통한 부품의 개수 CpC_p를 한 줄에 출력한다. 다음 CpC_p개 줄에는 관통한 부품의 번호를 0부터 시작하는 번호로 한 줄에 하나씩, 증가하는 순서로 출력한다.

그 다음 줄에는 포탄이 소멸한 위치를 세 정수로 공백 하나씩 두고 출력한다. 각 좌표는 소수점 아래를 버린 값이다. 각 좌표는 입력에 그대로 나온 정수이거나, 버림 결과가 흔들릴 만큼 정수에 가깝지 않다. 포탄이 끝내 소멸하지 않으면 이 줄 대신 SHOT NEVER DISINTEGRATED를 출력한다.