eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Мавпа та кокоси

Мавпа та кокоси

\includegraphics{https://static.e-olymp.com/content/45/45087a2c235a6a4831e1ae4487e4c0b4b5236565.jpg} Щоб розбити кокос, мавпи звичайно вилазять дах \textbf{n}-поверхового будинку і кидають кокос донизу. Одного разу одна кмітлива мавпа, якій надоїло постійно підніматись на дах, вирішила вияснити самий низький поверх, при киданні з якого кокос розбивається. Мавпа може піднятись на довільний поверх з \textbf{1}-го по \textbf{n}-й (дах вважається (\textbf{n+1})-м поверхом) і кинути кокос у вікно. Якщо кокос при падінні не розбивається, мавпа може використовувати його для експериментів знову. Всього у мавпи для дослідів приготовано \textbf{k} кокосів. Мавпа повинна вияснити номер шуканого поверху, використавши не більше \textbf{k} кокосів. Також мавпа хоче знайти поверх за мінімальне число кидань, так як вона може нести лише один кокос і для кожного кидка їй приходиться спускатись донизу на землю за приготованим для дослідів кокосом або за раніше кинутим, але кокосом який не розбився. Напишіть програму, якиа складе план проведення експериментів, який мінімізує число кидань у найгіршому випадку. План повинен враховувати, що шуканим поверхом може виявитись довільний поверх з \textbf{1} по \textbf{n}, а може виявитись, що кокос розбивається лише при падінні з даху. \InputFile У першому рядку міститься два цілих числа, відокремлених пропуском -- кількість поверехів у будинку \textbf{n} (\textbf{1} ≤ \textbf{n }≤ \textbf{1000000}) та число кокосів \textbf{k} (\textbf{1 }≤ \textbf{k }≤ \textbf{1000}). \OutputFile Вивести мінімальну кількість експериментів у найгіршому випадку.
Ліміт часу 0.5 секунд
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
10 2
Вихідні дані #1
4