给定一个正整数NNN,求最小的、比NNN大的正整数MMM,使得MMM与NNN的二进制表示中有相同数目的1。 举个例子,假如给定的NNN为78,其二进制表示为1001110,包含4个1,那么最小的比NNN大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。
输入若干行,每行一个数NNN,输入"0"结束。
输出若干行对应的值。
1 2 3 4 78 0
2 4 5 8 83
1≤N≤10000001≤N≤10000001≤N≤1000000
Using your lizikid universal account