Задача №113761. Удаление чисел

В ряд выписаны натуральные числа от 1 до n и задано натуральное число k .

Выполняется один или несколько шагов по удалению чисел в этом ряду. На очередном шаге оставшиеся числа просматриваются в возрастающем порядке, и каждое k -е число удаляется. Если после очередного шага осталось меньше k чисел, то процесс удаления чисел завершается.

Необходимо определить, на каком шаге будет удалено число n , или выяснить, что оно не будет удалено до завершения процесса.

Например, пусть n = 13 , k = 2 .

  1. На первом шаге будут удалены числа 2 , 4 , 6 , 8 , 10 и 12 , останутся числа 1 , 3 , 5 , 7 , 9 , 11 и 13 ;
  2. На втором шаге будут удалены числа 3 , 7 и 11 , останутся числа 1 , 5 , 9 и 13 .;
  3. На третьем шаге будут удалены числа 5 и 13 , останутся числа 1 и 9 ;
  4. На четвертом шаге будет удалено число 9 , останется число 1 . Поскольку осталось одно число, процесс завершается.

Таким образом, число 13 будет удалено на третьем шаге. Требуется написать программу, которая по заданным числам n и k определяет, на каком шаге будет удалено число n .

Входные данные

Первая строка входных данных содержит целое число n ( 3 ≤ n ≤ 10 18 ). Вторая строка входных данных содержит целое число k ( 2 ≤ k ≤ 100 , k < n ).

Выходные данные

Требуется вывести одно целое число — номер шага, на котором будет удалено число n , или число 0 , если число n не будет удалено.

Система оценки

Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

Примеры
Входные данные
13
2
Выходные данные
3
Сдать: для сдачи задач необходимо войти в систему