Падаючі картки
Важко змусити ігрову карту стояти на ребрі, проте деякі терплячі люди змогли поставити N з них на стіл так, що кожна карта стоїть на своєму коротшому ребрі. Вид зверху на цей стіл з картами можна представити у вигляді набору відрізків з координатами (x_i, y_i) до (v_i, w_i). Відрізки не перетинаються.
Перша карта падає на бік, змушуючи будь-яку карту, яку вона торкається, також впасти. Кут між вектором (x_1, y_1)–(v_1, w_1) і напрямком падіння першої карти дорівнює 90 градусів (вимірюється проти годинникової стрілки). Якщо карта A торкається карти B, напрямок падіння B вибирається так, щоб продовження вектора напрямку не перетинало пряму, що містить відрізок A. Вхідні дані гарантують, що ніколи не містять:
карту, що падає точно перпендикулярно до іншої, і
падаючу карту, яка торкається більше ніж однієї з карт, що ще стоять.
Ваша програма повинна визначити, які карти впадуть, а які залишаться стояти.
Вхідні дані
У першому рядку вхідного файлу містяться числа N H (1 ≤ N ≤ 100, H > 0) — кількість карт і висота карти з плаваючою точкою. Кожен з наступних N рядків містить чотири числа з плаваючою точкою x_i y_i v_i w_i — координати карт, розділені пробілами.
Вихідні дані
Вихідний файл повинен містити список номерів впалих карт, відсортованих у зростаючому порядку і розділених пробілами.