编程题
### 问题描述
$A$ 城有与其他城镇完全不同的货币系统,该城所有的货币面值都符合 $2^x+p$ 的格式,其中 $A$ 城官方规定 $p$ 的值,并且规定 $x$ 为不小于 $0$ 的正整数。
这天,小蓝去 $A$ 城买东西,他带了各种面值的 $A$ 城钱币无数张。他想买的东西价格为 $n$ ,小蓝想知道,他最少花费几张钱币才能刚好买下这件东西(允许使用若干张相同面值的钱币,要求花费钱币的面值之和必须刚好等于物品的价格)。
例如,若该物品的价格为 $7$ ,且 $p=2$ ,那么小蓝最少可使用两张货币买下该物品,两张货币中一张 $x=1$ ,另一张 $x=0$ ,即 $(2^1 +2)+(2^0 +2)=7$ 。
### 输入格式
输入包含两个整数 $n,p$ ,分别表示小蓝想买的东西的价格和 $A$ 城规定的 $2^x+p$ 中 $p$ 的值。
### 输出格式
输出一个整数,表示小蓝最少花费几张钱币才能正好买下该物品。若小蓝无法用 $A$ 城钱币刚好买下该物品,输出 $-1$ 。
### 样例输入
```
7 2
```
### 样例输出
```
2
```
### 评测数据规模
对于所有评测数据, $1\leq{n}\leq{10^9 },-1000\leq{p}\leq{1000}$ 。