#CF1991B. AND Reconstruction

AND Reconstruction

B. 与运算重建

时间限制:1 秒
空间限制:256 MB

给定一个由 n1n-1 个整数组成的数组 bb

一个长度为 nn 的数组 aa 被称为“好的”,如果对于所有的 1in11 \le i \le n-1,都有 bi=ai&ai+1b_i = a_i \mathbin{\&} a_{i+1},其中 &\& 表示按位与运算。

请你构造一个“好的”数组,或者报告不存在这样的数组。

输入格式

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试数据的组数。

每组测试数据包含两行:

  • 第一行包含一个整数 nn2n1052 \le n \le 10^5)—— 数组 aa 的长度。
  • 第二行包含 n1n-1 个整数 b1,b2,,bn1b_1, b_2, \dots, b_{n-1}0bi<2300 \le b_i < 2^{30})。

保证所有测试数据的 nn 之和不超过 10510^5

输出格式

对于每组测试数据,如果不存在“好的”数组,输出一行 -1

否则,输出 nn 个用空格分隔的整数 a1,a2,,ana_1, a_2, \dots, a_n0ai<2300 \le a_i < 2^{30}),表示一个满足条件的数组 aa

如果有多组解,输出任意一组即可。

样例输入

4
2
1
3
2 0
4
1 2 3
5
3 5 4 2

样例输出

5 3
3 2 1
-1
3 7 5 6 3

样例解释

  • 第一组:b=[1]b=[1],一个可行的 aa[5,3][5,3],因为 5&3=15 \mathbin{\&} 3 = 1
  • 第二组:b=[2,0]b=[2,0],一个可行的 aa[3,2,1][3,2,1]
  • 第三组:b=[1,2,3]b=[1,2,3],可以证明不存在这样的 aa,输出 -1
  • 第四组:b=[3,5,4,2]b=[3,5,4,2],一个可行的 aa[3,7,5,6,3][3,7,5,6,3]