编程题
### 问题描述
女巫很喜欢收集魔法晶石,她共收集了 $N$ 个魔法晶石,每个魔法晶石初始时有 $1$ 个魔法能量。
有天女巫觉得自己的魔法晶石实在是太多了,她决定进行晶石的合成,使得晶石的数量不超过 $K$。她合成晶石的方法如下:
每次合成晶石,女巫将选择两个所含魔法能量相同的晶石,将其合成为一个新的晶石,新晶石的魔法能量为两个合成原料的魔法能量之和。
显然在某些情况下女巫无法达到目标,比如 $N=3,K=1$。此时女巫会重新收集一些魔法晶石(新收集的晶石的初始魔法能量也是 $1$),以达到目标。
现在女巫想知道,最少需要新收集多少魔法晶石才能达到目标呢?
### 输入格式
输入包括两个整数 $N,K$,含义见上文。
### 输出格式
输出一个整数,表示最少需要新收集的魔法晶石数量。
### 样例输入
```
3 1
```
### 样例输出
```
1
```
### 评测数据规模
对于所有评测数据,$1\leq{N}\leq{10^9 },1\leq{K}\leq{1000}$。