考虑如下序列问题:给定 $n$ 个整数 $a_1, a_2, \dots, a_n$,其中对于所有 $1 \le i \le n$ 满足 $|a_i| \le 10^6$,且 $1 \le n < 2000$,计算 $$\max_{1 \le \ell \le r \le n} (r - \ell + 1) \cdot \sum_{\ell \le i \le r} a_i$$
为了尝试解决上述问题,Natasha 提出了一种基于前缀和计算最重子段的贪心算法,如下所示:
Function FindAnswer(a1, a2, . . . , an) result = 0 curMax = 0 left = 0 for i = 1 to n do curMax = curMax + ai if curMax < 0 then curMax = 0 left = i end result = max( result, (i − left)× curMax ) end return result
如你所见,Natasha 的想法并不完全正确。例如,当输入序列为 $6, -8, 7, -42$ 时,函数 FindAnswer 将返回 $7$,但正确答案是 $3 \cdot (6 - 8 + 7) = 15$。
Bruce 试图告诉 Natasha 她的解法不正确,但她并不相信。
给定一个整数 $k$ 和序列长度的下界 $L$,你的任务是帮助 Bruce 设计一个长度为 $n$ 的整数序列,满足 $n \ge L$,使得正确答案与 Natasha 算法得出的答案之差恰好为 $k$。
注意,你生成的序列必须符合原问题的规范。即 $1 \le n < 2000$ 且对于所有 $1 \le i \le n$ 满足 $|a_i| \le 10^6$。如果无法构造出这样的序列,请输出 $-1$。
输入格式
输入文件的第一行包含一个整数 $T$,表示测试用例的数量。
接下来有 $T$ 行,每行包含两个整数 $k$ 和 $L$,中间用空格隔开。
输出格式
每个测试用例的输出由一行或两行组成,具体取决于结果。格式如下:
如果不存在这样的序列,则输出一行 $-1$。否则,在第一行输出整数 $n$,表示序列的长度。在第二行输出 $n$ 个整数 $a_1, \dots, a_n$,中间用空格隔开。
数据范围
- $1 \le T \le 5$
- $1 \le k \le 10^9$
- $0 \le L \le 10^9$
样例
样例输入 1
3 8 3 612 7 4 2019
样例输出 1
4 6 -8 7 -42 7 30 -12 -99 123 -2 245 -300 -1