Опукла оболонка
Вам задано множину точок на площині.
Знайдіть їх опуклу оболонку.
Вхідні дані
Перший рядок вхідного файлу містить ціле число n - кількість точок (3 ≤ n ≤ 200000). У наступних n рядках описано точки. i-ий рядок складається з двох цілих чисел - координат i-ої точки. Координати не перевищують 10^9 по модулю. Гарантується, що усі точки не лежать на одній прямій. Точки можуть співпадати.
Вихідні дані
У перший рядок вихідного файлу виведіть кількість вершин в опуклій оболонці. У другу - номери вершин через пропуск, які її утворюють. Виведіть вершини у порядку обходу проти годинникової стрілки. Ніякі два ребра опуклої оболонки не ровинні лежати на одній прямій.
У третій рядок виведіть периметр оболонки, у четверту - її площу.
Периметр повинен бути виведений з абсолютною чи відносною похибкою не більше 10^{-9}. Площа повинна бути виведена абсолютно точно.