A little girl loves problems on bitwise operations very much. Here's one of them. You are given two integers l and r . Let's consider the values of for all pairs of integers a and b (l ≤ a ≤ b ≤ r). Your task is to find the maximum value among all considered ones. Expression means applying bitwise excluding or operation to integers x and y . The given operation exists in all modern programming languages, for example, in languages C ++ and Java it is represented as "^", in Pascal — as «xor».
输入描述:
The single line contains space-separated integers l and r (1 ≤ l ≤ r ≤ 1018).Please, do not use the %lld specifier to read or write 64-bit integers in С++. It is preferred to use the cin, cout streams or the %I64d specifier.


输出描述:
In a single line print a single integer — the maximum value of for all pairs of integers a, b(l ≤ a ≤ b ≤ r).
示例1

输入

1 2<br />8 16<br />1 1<br />

输出

3<br />31<br />0<br />
加载中...