#CF2124E. 归零

归零

E. 归零
时间限制:2 秒
内存限制:256 兆字节

给定一个由正整数组成的数组 aa,长度为 nn。你可以执行以下操作:

  • 选择一个数组 bb,满足以下性质:
    • 对每个 1in1 \le i \le n,有 0biai0 \le b_i \le a_i
    • 存在一个下标 1i<n1 \le i < n,使得$$b_1 + b_2 + \dots + b_i = b_{i+1} + b_{i+2} + \dots + b_n. $$即长度为 ii 的前缀和等于长度为 nin-i 的后缀和。
  • 然后,对每个 1in1 \le i \le n,执行 ai:=aibia_i := a_i - b_i

你的目标是将所有元素变为 00。求最少需要的操作次数。

然后,输出一种操作方案。如果无论如何操作都无法将 aa 的所有元素变为 00,则输出 1-1。可以证明,在本题的数据范围内,最少操作次数不超过 1717


输入
每个测试包含多个测试用例。第一行包含测试用例数 tt1t1041 \le t \le 10^4)。

每个测试用例的第一行包含一个整数 nn2n51042 \le n \le 5 \cdot 10^4)—— 数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai10121 \le a_i \le 10^{12})—— 数组 aa

保证所有测试用例的 nn 之和不超过 51045 \cdot 10^4


输出
对于每个测试用例,如果无解,输出一行 -1

否则,先输出一个整数 ss1s171 \le s \le 17)—— 最少操作次数。

然后输出 ss 行,每行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n0biai0 \le b_i \le a_i),表示每次操作对应的 bb 数组。

执行完这些操作后,aa 的所有元素应变为 00


样例
输入

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

输出

1
1 2 3
-1
2
3 1 1 1
2 2 0 4

说明

  • 第一个测试用例:可以直接选择 b=ab = a,因为 b1+b2=b3b_1 + b_2 = b_3
  • 第二个测试用例:可以证明无法将 aa 的所有元素变为 00