小gay最近学习了线段树这个神奇的数据结构。但爱思考的小gay意识到线段树用数组保存也太浪费空间了。例如,如下一颗n=10的线段树长这个样子~
其中,[a,b]表示节点表示数据范围,下标表示节点序号。
可以看见,一共用了19个节点,但是标号到了25.
令f(n)表示一颗n个叶子节点的线段树所占的最大数组下标。现在闲得无聊的小gay想让你帮忙求出:
f(l) ⊕ f(l+1) ⊕ f(l+2) ⊕ …… ⊕ f(r)
其中,⊕为异或运算。
两个整数,l和r,含义如上所示。其中
。
输出一个整数,对应异或的结果。