Бильярд
Имеется бильярдный стол. Игровое поле имеет прямоугольную форму. Бильярдное поле имеет специальный вид, так как оно не имеет лунок, а игровая область окружена упругим бортом.
Вам удалось создать ультра-точный бильярд, в который играет робот. После расположения шаров на столе машина ударяет один из этих шаров. Шар, по которому ударили, останавливается после прохождения расстояния в 10000 единиц.
Когда шар ударяется о борт стола, его направление движения зеркально отражается. Когда шар попадает в угол, он меняет свое направление на противоположное.
Вам следует выяснить, какой шар первым столкнется с мячом, который ударил робот.
Входные данные
Состоит из нескольких тестов. Количество тестов не более 100. Каждый тест имеет следующий формат:
n
w h r v_x v_y
x_1 y_1
...
x_n y_n
Первая строка содержит количество шаров n (2 ≤ n ≤ 11) на столе. Следующая строка содержит пять целых чисел w, h, r, v_x, v_y, разделенных пробелом, где w и h (4 ≤ w, h ≤ 1000) - ширина и длина игровой области стола, r (1 ≤ r ≤ 100) - радиус шаров. Робот ударяет шар в направлении вектора (v_x, v_y) (-10000 ≤ v_x, v_y ≤ 10000, (v_x, v_y) ≠ (0, 0)).
Следующие n строк задают положения шаров. Каждая строка содержит два целых числа (x_i, y_i) - положение центра i-го шара на столе в начальном состоянии (r < x_i < w - r, r < y_i < h - r). (0, 0) задает положение северо-западного угла игровой области, а (w, h) задает положение юго-восточного угла игровой области. Считайте, что изначально шары не касаются друг друга и борта.
Робот всегда ударяет первый шар в списке. Входные данные корректны.
Последняя строка содержит ноль и не обрабатывается.
Выходные данные
Для каждого теста вывести индекс шара, который первым столкнется с шаром, который ударит робот. Если столкновения не произойдет до его остановки, то вывести "-1".
Первое столкновение произойдет не более чем с одним шаром.
Если r изменить на eps (eps < 10^{-9}), то номер шара, о который произойдет первый удар, не изменится.