#2023. 位运算

位运算

Background

Special for beginners, ^_^

Description

给定一个正整数 nn ,请你求出最小的正整数 mm ,使得同时满足以下三个条件:

n&m0n\&m\ne 0 nm0n|m\ne 0 nm0n\oplus m\ne 0

式中:

&\& 表示两数与,是指两数在二进制形式下按位做与运算

| 表示两数或,是指两数在二进制形式下按位做或运算

表示两数异或,是指两数在二进制形式下按位做异或运算,所谓异或,是指不同值异或结果为 11 ,相同值异或结果为 00 ,即:

00=00\oplus 0=0 01=10\oplus 1=1 10=11\oplus 0=1 11=01\oplus 1=0

Format

Input

本题每个测试点包含多组105(\le10^5)测试例子。

每行一个测试例,一个正整数 n1019n\le10^{19}

Output

每行输出一个正整数 ,表示满足最小的正整数 mm

Limitation

对于 15%15\% 的数据, 满足 1n1001\leq n\leq100

对于 30%30\% 的数据, 满足 1n1051\leq n\leq10^{5}

对于 50%50\% 的数据, 满足 1n1091\leq n\leq10^9

对于 100%100\% 的数据, 满足 1n10191\leq n\leq10^{19}

Samples

2
3

说明:

mm11 时, 2&1=02\&1=0 ,不满足

mm22 时, 22^2=02=0((^ 指异或运算 )) 不满足

mm33 时, 满足条件:

2&3=22\&3=2

23=32|3=3

22^3=13=1