#CF2037F. 炽焰之焰

炽焰之焰

F. 炽焰之焰
每次测试时间限制:4 秒
每次测试内存限制:256 兆字节

你获得了新的限时活动角色 Xilonen。你决定让她投入战斗。

战场上有 nn 个敌人排成一条直线。从左数第 ii 个敌人的生命值为 hih_i,当前位于位置 xix_i
Xilonen 的攻击力为 mm,你准备好用她击败敌人。

Xilonen 有一个强大的 “踩地”攻击。在开始任何攻击之前,你选择一个整数 pp,将 Xilonen 置于该位置(pp 可以是任意整数位置,包括有敌人所在的位置)。
之后,每次攻击:

  • 她对位置 pp 的敌人造成 mm 点伤害(如果该位置有敌人);
  • 对位置 p1p-1p+1p+1 的敌人造成 m1m-1 点伤害;
  • 对位置 p2p-2p+2p+2 的敌人造成 m2m-2 点伤害;
  • 以此类推。
    距离 Xilonen 至少 mm 远的敌人本次攻击不受伤害。

形式化地说:若敌人在位置 xx,则每次攻击对其造成 max(0,mpx)\max(0, m - |p - x|) 点伤害。
注意:你不能在不同的攻击中选择不同的 pp

在所有可能的 pp 中,输出为了击败 至少 kk 个敌人,Xilonen 必须发动的最小攻击次数。
如果不存在任何 pp 能最终击败至少 kk 个敌人,输出 1-1
敌人生命值 0\le 0 即视为被击败。


输入

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

每个测试用例的第一行包含三个整数 n,m,kn, m, k1kn1051 \le k \le n \le 10^51m1091 \le m \le 10^9)。

接下来一行包含 nn 个整数 h1,h2,,hnh_1, h_2, \dots, h_n1hi1091 \le h_i \le 10^9)。

最后一行包含 nn 个整数 x1,x2,,xnx_1, x_2, \dots, x_n1xi1091 \le x_i \le 10^9xi<xi+1x_i < x_{i+1} 对所有 1i<n1 \le i < n 成立)。

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


输出

对每个测试用例,输出一行一个整数,表示击败至少 kk 个敌人所需的最少攻击次数。
如果不可能,输出 1-1


示例

输入

6
5 5 3
7 7 7 7 7
1 2 3 4 5
9 5 9
2 4 6 8 10 8 6 4 2
1 2 3 4 5 6 7 8 9
2 10 2
1 1
1 20
2 10 1
69696969 420420420
1 20
2 10 2
10 15
1 19
2 2 2
1000000000 1
1 3

输出

2
2
-1
6969697
15
1000000000

样例解释

  • 第一个测试用例:最优选 p=2p=2。每次攻击,敌人 11 受到 521=45 - |2-1| = 4 伤害,敌人 22 受到 55 伤害,敌人 33 受到 44 伤害,敌人 44 受到 33 伤害,敌人 55 受到 22 伤害。
    两次攻击后,前三个敌人被击败。可以证明,无论选哪个 pp,都无法在少于 22 次攻击内击败 33 个敌人。

  • 第二个测试用例:必须击败全部 99 个敌人。选 p=5p=5,所有敌人在 22 次攻击内被击败。

  • 第三个测试用例:必须击败两个敌人,但可以证明无论选哪个 pp,都不能同时伤害到两个敌人,所以输出 1-1

  • 第四个测试用例:选 p=1p=1,可以在 69696976969697 次攻击内击败第一个敌人。

  • 第五个测试用例:选 p=10p=10,每次攻击每个敌人受 11 点伤害。两个敌人都在 1515 次攻击内被击败。