당구

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

문제

포켓이 없는 직사각형 당구대가 있다. 경기 면의 네 변은 모두 쿠션으로 막혀 있다.

초정밀 당구 로봇을 만들었다. 당구대에 공을 여러 개 올려놓으면 로봇이 그중 하나를 때린다. 맞은 공은 이동 거리의 합이 1000010000이 되는 순간 멈춘다.

공이 쿠션에 닿으면 거울에 반사되듯 진행 방향이 꺾인다. 모서리에 닿으면 들어온 길을 그대로 되돌아간다.

공의 반지름은 모두 rr이다. 두 공은 중심 사이의 거리가 2r2r일 때 서로 부딪히고, 맞은 공은 중심과 쿠션 사이의 거리가 rr일 때 쿠션에 반사된다. 나머지 공은 맞은 공이 닿을 때까지 처음 자리에 그대로 있다.

로봇이 때린 공에 가장 먼저 부딪히는 공이 무엇인지 예측하라.

입력

입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합의 개수는 100100개보다 적다. 각 데이터 집합의 형식은 다음과 같다.

n
w h r vx vy
x1 y1
...
xn yn

첫 줄에는 당구대 위에 놓인 공의 개수 nn이 주어진다 (2n112 \le n \le 11). 다음 줄에는 정수 다섯 개 ww, hh, rr, vxv_x, vyv_y가 공백 하나로 구분되어 주어진다. wwhh는 경기 면의 너비와 길이이고 (4w,h10004 \le w, h \le 1000), rr는 공의 반지름이다 (1r1001 \le r \le 100). 로봇은 벡터 (vx,vy)(v_x, v_y) 방향으로 공을 때린다 (10000vx,vy10000-10000 \le v_x, v_y \le 10000, (vx,vy)(0,0)(v_x, v_y) \ne (0, 0)).

이어지는 nn개의 줄에는 공의 위치가 주어진다. 각 줄은 공백 하나로 구분된 정수 두 개로 이루어지고, (xi,yi)(x_i, y_i)는 처음 상태에서 ii번째 공의 중심 좌표다 (r<xi<wrr < x_i < w - r, r<yi<hrr < y_i < h - r). (0,0)(0, 0)은 경기 면의 북서쪽 꼭짓점, (w,h)(w, h)는 남동쪽 꼭짓점이다. 처음 상태에서 공끼리 닿아 있거나 공이 쿠션에 닿아 있는 경우는 없다.

로봇은 항상 목록의 첫 번째 공을 때린다. 주어지는 값에 오차는 없다.

입력의 끝은 00 하나만 있는 줄로 나타낸다.

출력

각 데이터 집합마다 로봇이 때린 공에 가장 먼저 부딪히는 공의 번호를 한 줄에 하나씩 출력한다. 번호는 입력에 주어진 순서대로 11부터 세고, 로봇이 때린 공이 11번이다. 맞은 공이 멈출 때까지 어떤 공에도 부딪히지 않으면 -1을 출력한다.

두 개 이상의 공이 맞은 공과 동시에 가장 먼저 부딪히는 경우는 없다. 또한 rr10910^{-9}보다 작은 값만큼 바꾸어도 가장 먼저 부딪히는 공과 부딪히는 방식은 달라지지 않는다.