Важко змусити ігрову карту стояти на ребрі, але терплячій людині вдалося поставити карт на стіл так, що кожна карта стоїть на коротшому ребрі. Вид зверху на стіл з картами можна уявити як набір відрізків з координатами (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