문제1762--물통

1762: 물통

[만든사람 : ]
시간제한 : 1.000 sec  메모리제한 : 512 MB  제출 : 17  맞은 사람 : 5

제출  

문제 설명

큐브는 N개의 물통이 있다. 각 물통에는 물을 무한대로 부을 수 있다. 처음에는 모든 물통에 1리터씩 들어있다고 한다. 
큐브는 이 물통을 또 다른 장소로 이동시키려 한다. 큐브는 한 번에 K개의 물병을 옮길 수 있다고 한다. 
하지만, 큐브는 자연을 아껴서 물을 낭비되는 것을 싫어하고 이동을 한 번보다 많이 하는 것을 싫어한다. 
따라서 큐브는 물통의 물을 적절히 재분배해서, K개를 넘지 않는 비어있지 않은 물통을 만들려고 한다. 

물은 다음과 같이 재분배 한다. 
- 먼저 같은 양의 물이 들어 있는 물통 두 개를 고른다. 
- 한 개의 물통에 다른 한 쪽에 있는 물을 모두 붓는다. 
- 이 방법을 필요한 만큼 계속 한다. 

이런 조건 때문에, N개로 K개를 넘지 않고 비어 있지 않은 물통을 만드는 것이 불가능 할 수 도 있다. 
다행이도 새로운 물통을 살 수 있는데 가게에서 구매하는 물통도 1리터의 물이 들어 있다. 

예를 들면, N=3이고 K=1일 때를 보면, 물통 3개로 1개를 만드는 것이 불가능하다. 한 통을 다른 통에 부으면, 2리터가 들어 있는
물통 하나와, 1리터가 들어 있는 물통 하나가 남는다. 만약 가게에서 한 개의 물병을 구매한다면, 2리터가 들어 있는 물통 
두 개를 만들 수 있고, 마지막에 4리터가 들어 있는 물통 한 개를 만들 수 있다. 

입력 설명

첫째 줄에는 N과 K가 주어진다. N은 10^7보다 작거나 같은 자연수이고,  K는 1000보다 작거나 같은 자연수이다. 

출력 설명

첫째 줄에는 상점에서 사야하는 물병의 최솟값을 출력한다. 만약 정답이 없을 경우에는 -1을 출력한다. 

입력 예시1 Copy

3 1

출력 예시1 Copy

1

출처/분류