Завдання № 8
відбірково-тренувальних зборів
команди міста Києва

1. Сновида

У президента Першого нацiонального банку майора Томаса Б. Кiнгмена (героя оповiдання О'Генрi "Товаришi iз Сан-Розарiо") з'явилася шкідлива звичка щоночi перекладати однаковим чином вмiст сейфiв, у яких клiєнти зберiгають свої коштовностi.

Завдання
Створiть програму sleep.*, яка допоможе вирахувати, через скiльки дiб всi коштовностi вперше повернуться на свої мiсця.

Вхідні дані
Перший рядок вхiдного файлу sleep.in мiстить одне натуральне число n — кiлькiсть сейфiв банку, що неперевищує 15500. Далi (починаючи з другого рядка) файл мiстить послiдовнiсть n рiзних натуральних чисел в межах вiд 1 до n включно. k-ий член цiєї послiдовностi — номер сейфу, куди майор перекладає вмiст k-го сейфу першої ночi.

Вихідні дані
Єдиний рядок вихiдного файлу sleep.out має мiстити запис у десятковiй системi числення шуканого числа дiб, що містить не більше, ніж 1000 цифр.

Приклад

sleep.insleep.out
5
2 3 1 5 4
6

2. Корiнь квадратний

Щоб добути квадратний корiнь з десяткового дробу (наприклад, 65432.109), його запис розбивають праворуч i лiворуч вiд десяткової крапки на гранi, що мiстять по 2 цифри. У крайнiй лiвiй гранi може виявитися i одна цифра (6). Перша цифра кореня (2) знаходиться як найбiльша з усiх тих цифр, квадрати яких не перевищують першої гранi (6). Потiм вiд першої гранi вiднiмають квадрат першої цифри кореня (4), i до рiзницi приписують праворуч (зносять) наступну грань (54). Лiворуч вiд отриманого числа (254) пишуть подвоєну першу цифру кореня (4), а за наступну цифру (5) беруть найбiльшу з тих, добуток яких на число, утворене приписуванням її до подвоєної першої цифри праворуч, (45 ∙ 5=225) не перевищує результату приписування до попередньої рiзницi вiдповiдної гранi (254). Цю цифру (5) записують пiсля першої цифри кореня i т.д. Десяткова крапка у коренi ставиться тодi, коли зноситься перша грань праворуч вiд десяткової крапки числа.

Завдання
Створiть програму root.*, яка вираховує корiнь квадратний додатного десяткового дробу.

Вхідні дані
Єдиний рядок вхiдного файлу root.in мiстить у вказаному порядку скiнченний або перiодичний додатний десятковий дрiб (всього — до 1000 символiв разом з десятковою крапкою) a та натуральне число n, яке не перевищує 100.

Вихідні дані
Єдиний рядок файлу root.out має мiстити подання кореня квадратного а скiнченним чи перiодичним десятковим дробом, якщо це можливо, iнакше — корiнь квадратний числа a з недостачею з точнiстю до n цифр пiсля десяткової крапки.

Приклади

root.inroot.out
25 65
0.69(4) 50.8(3)
65432.109 4255.7970