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".
Input
The single line contains space-separated integers $*l*$ and $*r*$ ($1 ≤ *l* ≤ *r* ≤ 10^{18}$).
Please, do not use the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cin, cout streams or the %I64d specifier.
Output
In a single line print a single integer — the maximum value of
for all pairs of integers $*a*$, $*b*$ $(*l* ≤ *a* ≤ *b* ≤ *r*)$.
样例
1 2
3
8 16
31
1 1
0
题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。