小慕最近在做一个数字处理项目,遇到了一个有趣的问题。项目经理给了小慕一个 n (1 ≤ n ≤ 1e9),要求小慕找到一个比 n 大的数字 m,并且 m 和 n 的二进制表示中 1 的个数必须相同(例如,4 的二进制是 100,8 的二进制是 1000,它们都只有 1 个 1)。现在,小慕需要找出满足条件的最小的 m。
提示:带虚线的词点一下有通俗解释。
输入描述
输入一行输入一个正整数n (1 <= n <= 1e9)。
输出描述
输出一个正整数m。
示例
示例 1
输入
300
输出
305
时间限制 1000 ms · 内存限制 128 MB