Падаючі картки#2650

Падаючі картки

1 секунда
64 мегабайти
Легка

Важко змусити ігрову карту стояти на ребрі, але терплячій людині вдалося поставити карт на стіл так, що кожна карта стоїть на коротшому ребрі. Вид зверху на стіл з картами можна уявити як набір відрізків з координатами (x_i, y_i) до (v_i, w_i). Відрізки не перетинаються.

Перша карта падає на бік, змушуючи впасти всі карти, яких вона торкається. Кут між вектором (x_1, y_1)–(v_1, w_1) і напрямом падіння першої карти дорівнює градусів (вимірюється проти годинникової стрілки). Якщо карта торкається карти , напрям падіння вибирається так, щоб продовження вектора напряму не перетинало пряму, що містить відрізок . Вхідні дані гарантують, що ніколи не містять:

1. карту, яка падає точно перпендикулярно до іншої; 2. падаючу карту, яка торкається більше ніж однієї з тих, що залишилися стояти.

Ваша програма повинна визначити, які карти впадуть, а які залишаться стояти.

Вхідні дані

У першому рядку вхідного файлу містяться числа (1 \leq N \leq 100, H > 0) — кількість карт і висота карти з плаваючою крапкою. Кожен з наступних рядків містить чотири числа з плаваючою крапкою x_i y_i v_i w_i — координати карт, розділені пробілами.

Вихідні дані

Вихідний файл повинен містити список номерів впалих карт, відсортованих у зростаючому порядку і розділених пробілами.

Приклади

Приклад 1

Loading
Loading