시간 제한
메모리 제한
시간 제한
1초
메모리 제한
512 MB
지민이는 물이 1리터씩 들어 있는 물병 N개를 가지고 있다. 각 물병에는 얼마든지 물을 더 담을 수 있다. 지민이는 물병들을 다른 장소로 옮기려 하지만, 한 번에 최대 K개의 물병만 옮길 수 있고 이동은 한 번만 하려고 한다. 따라서 물을 버리지 않고 물을 합쳐서 비어 있지 않은 물병의 수를 K개 이하로 줄여야 한다.
물은 다음 규칙으로만 합칠 수 있다.
물의 양이 같은 물병 두 개를 고른 뒤, 한 병의 물을 다른 병으로 모두 붓는다. 이 과정을 필요한 만큼 반복할 수 있다.
처음 가진 N개의 물병만으로는 K개 이하로 줄일 수 없는 경우가 있다. 그럴 때는 가게에서 물이 1리터 들어 있는 새 물병을 더 살 수 있다. 사야 하는 새 물병 개수의 최솟값을 구하라.
N=3, K=1인 경우 처음 세 병만으로는 한 병을 만들 수 없다. 1리터 두 병을 합치면 2리터 한 병과 1리터 한 병이 남는다. 새 물병을 한 개 사면 1리터 두 병을 합쳐 2리터 한 병을 하나 더 만들 수 있고, 마지막에 2리터 두 병을 합쳐 4리터 한 병으로 만들 수 있다.
첫째 줄에 두 자연수 N과 K가 공백으로 구분되어 주어진다.
상점에서 사야 하는 물병 개수의 최솟값을 출력한다. 만들 수 없다면 -1을 출력한다.