nocriz是一个好学的同学。
nocriz同学了解到有一种叫Swappy Tree的神奇的树。
Swappy Tree 是一棵高度为 n+1,有着 2n 个叶子的完全二叉树。叶子从左向右分别写着为 1,2,…,2n。
对于非叶子节点,在所有时刻,我们将从上往下第 i 层,从左往右第 j 个的点称为 2i−1+j−1。
这里,我们定义 swap(x) 为交换 x 号节点的左右子树(交换后第 i 个非叶子节点依然按上文中的方法定义)。
Swappy Tree上要进行以下两种操作:
-
给定 k (k≤2n),求出从左往右第k个叶子上的值。
-
给定 a,b (1≤a≤b≤2n−1),依次进行 swap(a), swap(a+1),…, swap(b)。
你需要代替nocriz同学实现一棵Swappy Tree。
具体来说,给定 n 和 q 个询问,请对其处理并做出一棵Swappy Tree。