B. Трубопровод
ограничение по времени на тест
0.4 секунд
ограничение по памяти на тест
256 мегабайт
ввод
stdin
вывод
stdout

Вова — новый шаман Крайней Туле — хочет построить трубопровод. Так как в Крайней Туле ровно n домов, Вова хочет, чтобы в городе было ровно n труб, к каждой из которых можно подключить водоснабжение. К трубе можно подключить водоснабжение, если из нее течет вода. Изначально у Вовы есть только одна труба, из которой течет вода. Кроме того, у Вовы есть несколько разветвителей.

Разветвитель — это конструкция, состоящая из одного входа, который может быть подсоединен к трубе с водой, и x труб-выходов. В результате подсоединения из каждой трубы-выхода будет течь вода. Считайте, что трубы-выходы — это обычные трубы. Например, к такой трубе можно подсоединить водоснабжение, если из нее течет вода. К одной трубе, из которой течет вода, не может быть подсоединено более одного разветвителя.

На рисунке изображен разветвитель с 4-мя выходами

У Вовы есть по одному разветвителю с 2-мя, 3-мя, 4-мя, ..., k выходами. Помогите Вове использовать минимальное количество разветвителей, чтобы построить нужный ему трубопровод, или определите, что это невозможно.

Вове нужно, чтобы в его трубопроводе было ровно n труб, из которых вытекает вода. Обратите внимание, что некоторые из этих труб могут быть трубами-выходами разветвителей.

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

Во первой строке через пробел записаны два целых числа n и k (1 ≤ n ≤ 1018, 2 ≤ k ≤ 109).

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

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

Выведите единственное целое число — минимальное количество разветвителей, необходимое, чтобы построить трубопровод. Если построить трубопровод с имеющимися разветвителями невозможно, выведите -1.

Примеры
Входные данные
4 3
Выходные данные
2
Входные данные
5 5
Выходные данные
1
Входные данные
8 4
Выходные данные
-1