Codeforces Round 176 (Div. 2) |
---|
Закончено |
Вова — новый шаман Крайней Туле — хочет построить трубопровод. Так как в Крайней Туле ровно n домов, Вова хочет, чтобы в городе было ровно n труб, к каждой из которых можно подключить водоснабжение. К трубе можно подключить водоснабжение, если из нее течет вода. Изначально у Вовы есть только одна труба, из которой течет вода. Кроме того, у Вовы есть несколько разветвителей.
Разветвитель — это конструкция, состоящая из одного входа, который может быть подсоединен к трубе с водой, и x труб-выходов. В результате подсоединения из каждой трубы-выхода будет течь вода. Считайте, что трубы-выходы — это обычные трубы. Например, к такой трубе можно подсоединить водоснабжение, если из нее течет вода. К одной трубе, из которой течет вода, не может быть подсоединено более одного разветвителя.
У Вовы есть по одному разветвителю с 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
Название |
---|