Вершина пагорба
Ви берете участь у гонці на радіокерованих автомобілях. Автомобіль настільки простий в управлінні, що ви можете направити його куди завгодно.
У гонці учасники керують своїми автомобілями на великій, плоскій сцені з N циліндричними дисками. Деякі диски можуть лежати на інших, але жоден диск не виходить за межі диска під ним. Усі циліндричні диски мають однакову висоту (або "товщину"). Краї дисків ніколи не торкаються і не перетинаються один з одним.
Автомобіль досить безпечний, щоб зійти з диска, просто впавши вертикально з будь-якої точки на його краю, але він повинен використовувати ліфт, щоб піднятися на диск. На північній, південній, східній та західній стороні кожного диска є чотири ліфти.
Спочатку автомобіль знаходиться в (cx, cy), а ціль - найвища точка на сцені. Якщо є багато таких точок, ви можете вибрати будь-яку з них.
Ви дійсно хочете виграти гонку, тому вирішили написати програму для обчислення найкоротшої відстані, яку ваш автомобіль повинен проїхати від старту до цілі. Автомобіль не рухається, коли він піднімається або спускається з дисків, тому вам не потрібно підсумовувати висоту дисків.
Нижче наведено приклад найкоротшого шляху від старту до цілі.
Зверніть увагу, що автомобіль настільки малий, що ви можете ігнорувати його ширину.
Вхідні дані
Перша строка вхідних даних містить одне ціле число N (1 ≤ N ≤ 30), кількість циліндричних дисків. Наступна строка містить два цілі числа cx, cy (|cx|, |cy| ≤ 100), які описують початкові координати радіокерованого автомобіля. Потім кожна з наступних N строк складається з трьох цілих чисел x_i, y_i, r_i (|x_i|, |y_i| ≤ 100, 1 ≤ r_i ≤ 100), де (x_i, y_i) - координати центру i-го диска, а r_i - його радіус відповідно. Ви можете припустити, що початкова точка радіокерованого автомобіля не знаходиться на межах жодного з дисків.
Вихідні дані
Виведіть найкоротшу відстань, яку автомобіль повинен проїхати. Абсолютна похибка повинна бути меншою або дорівнювати 10^{-6}.