#P2537. 零零数

零零数

Description

零零数是指 一个数的二进制下 0的个数大于1的个数的数。现在你有一个数 nn ,你可以进行神秘的操作使得 n=n+1n = n + 1询问最少操作几次,可以使得 nn 变为零零数。

Input

第一行一个整数 nn 表示需要变为零零数的值。

Output

输出一个整数 mm 表示最少操作的次数。

Samples

4
0
5
3

样例解释

例如:4的二进制表示为100,其中022 个,111个,其0的个数大于1的个数,所以为零零数5的二进制表示为101,其中011 个,122个,其0的个数小于1的个数,所以不为零零数

数据范围

对于 100%的数据: 1n10161 \le n \le 10^{16}