#CF2146D1. 极大和或(简单版)

极大和或(简单版)

D1. 极大和或(简单版)

每次测试时间限制22
每次测试内存限制256256 兆字节

这是问题的简单版本。两个版本的区别在于,在这个版本中,l=0l = 0,且 r<2×105r < 2 \times 10^5。只有你解决了这个问题的所有版本,才能破解。


题目描述

你被赋予两个整数 llrrlrl \le r)。
n=rl+1n = r - l + 1。我们将创建两个数组 aabb,两者均由 nn 个整数组成。
最初,aabb 都等于 [l,l+1,,r][l, l+1, \dots, r]
你必须重新排序数组 aa,以最大化以下值:

i=1n(ai  bi)\sum_{i=1}^{n} (a_i \ | \ b_i)

这里,| 表示按位的 OR 运算。
你还需要构造一种可能的重新排序数组 aa 的方法。


输入

每个测试包含多个测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。
以下是测试用例的描述。

每个测试用例中唯一的行包含两个整数 llrr0=lr<2×1050 = l \le r < 2 \times 10^5)—— 分别是 aa 中的最小和最大元素。

n=rl+1n = r - l + 1。保证所有测试用例的 nn 之和不超过 2×1052 \times 10^5


输出

对于每个测试用例:

  • 在第一行打印一个整数 —— 即最大值 i=1n(ai  bi)\sum_{i=1}^{n} (a_i \ | \ b_i)
  • 在第二行打印 nn 个不同的整数 a1,a2,,ana_1, a_2, \dots, a_n —— 重新排序后的数组 aa

如果有多个答案,你可以打印任意一个。


示例

输入

3
0 3
0 9
0 15

输出

12
3 2 1 0 
90
7 8 5 4 3 2 9 0 1 6
240
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 

注释

在第一个测试用例中,重排序后的数组 aa[3,2,1,0][3, 2, 1, 0]
该表达式的值为
(30)+(21)+(12)+(03)=3+3+3+3=12(3|0) + (2|1) + (1|2) + (0|3) = 3 + 3 + 3 + 3 = 12
可以证明这是表达式的最大可能值。

在第二个测试用例中,重排序后的数组 aa[7,8,5,4,3,2,9,0,1,6][7, 8, 5, 4, 3, 2, 9, 0, 1, 6]
该表达式的值为 9090。可以证明这是表达式的最大可能值。