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: ![](https://cdn.luogu.com.cn/upload/image_hosting/laie1is5.png) 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