P6025 Segment Tree
Background
Little W learned a data structure called the segment tree.
Description
Soon, Little W discovered that segment trees waste far too much space.
For example, a segment tree with $n=6$ looks like this:

You can see that only $11$ nodes store useful information, but the array indices used go up to $13$.
Let $f(n)$ be the maximum array index occupied by a segment tree with $n$ leaf nodes. Now Little W wants you to compute:
$$f(l)\;\oplus\;f(l+1)\;\oplus\;f(l+2)\;\oplus\cdots \oplus\;f(r)$$
Here, $\oplus$ denotes the bitwise XOR operation, which is the `^` operator in C++.
Input Format
One line with two integers $l, r$, with the meaning described above.
Output Format
One line with one integer, the result.
Explanation/Hint
# Sample Explanation
$f(6)=13$, so the answer is $13$.
# Hint
If you do not know what a segment tree is:
```cpp
void build(int k,int l,int r)
{
if(l==r)
{
//do something
//e.g. tree[k]=a[l]
return;
}
int mid=(l+r)>>1;
build(k