#CF2072A. A. 新世界,新我,新数组

A. 新世界,新我,新数组

A. 新世界,新我,新数组

每个测试的时间限制11
每个测试的内存限制256256 MB

夏目秋人刚刚在一个新世界中醒来,立刻收到了他的第一个任务!系统给了他一个由 nn00 组成的数组 aa,一个整数 kk,以及一个整数 pp

在一次操作中,秋人可以选择两个整数 iixx,满足 1in1 \le i \le npxp-p \le x \le p,并将 aia_i 赋值为 xx

秋人还没有完全适应控制他的新身体,请帮助他计算使数组中所有元素之和等于 kk 所需的最少操作次数,或者告诉他这是不可能的。


输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000)—— 测试用例的数量。

每个测试用例只有一行,包含三个整数 nnkkpp1n501 \le n \le 502500k2500-2500 \le k \le 25001p501 \le p \le 50)—— 数组的长度、所需的总和、以及可以替换的数的范围边界。


输出格式

对于每个测试用例,输出使数组最终和为 kk 所需的最少操作次数,如果不可能达到总和 kk,则输出 1-1


示例

输入

8
21 100 10
9 -420 42
5 -7 2
13 37 7
10 0 49
1 10 9
7 -7 7
20 31 1

输出

10
-1
4
6
0
-1
1
-1

说明

  • 在第五个示例中,数组的初始和已经是 00,因此不需要任何操作。
  • 在第六个示例中,数组中能得到的最大和是 99(将唯一的元素赋值为 99),因此无法通过任何操作得到总和 1010
  • 在第七个示例中,只需要一次操作:将 a3a_3 赋值为 7-7