小薛 正在玩另一个电脑游戏。在这个游戏中,他的角色必须杀死锅姨。他可以与锅姨的战斗持续 100^500 秒,在此期间 小薛 用爆炸攻击龙。第 i 次攻击是在战斗开始后的第 a 秒开始时进行的。爆炸本身不会造成伤害,但会对锅姨施加燃烧效果,在接下来的每一 k 秒内造成 1 点伤害(从龙被匕首刺伤的同一秒开始)。但是,如果锅姨已经被燃烧,那么爆炸会更新燃烧效果(即取消当前的燃烧效果并应用新的)。
例如,假设 k=4,小薛在第 2、4 和 10 秒攻击锅姨。然后在第 2 秒开始时施加爆炸效果,并在第 2 秒和第 3 秒期间造成 1 点伤害/秒;然后,在第 4 秒开始时,燃烧效果被重新施加,因此它在第 4、5、6 和 7 秒期间正好造成 1 点伤害;然后,在第 10 秒内,再次施加燃烧效果,并在第 10、11、12 和 13 秒期间造成 1 点伤害。龙总共受到 10 点伤害。
小薛 知道锅姨有 h 点生命值,如果他在战斗中对锅姨造成至少 h 点伤害,他就会杀死锅姨。 小薛还没有决定他在战斗中将使用的爆炸的强度,所以他想找到足以对锅姨造成至少h伤害的k(燃烧效果持续的秒数)的最小可能值.
第一行包含一个整数 t (1≤t≤1000)——测试用例的数量。
测试用例的第一行包含两个整数 n 和 h (1≤n≤100;1≤h≤10^18) — Monocarp 的攻击次数和需要造成的伤害量。
第二行包含 n 个整数 a1, a2, ..., an (1≤ai≤10^9;ai<ai+1),其中 ai 是执行第 i 次攻击时的时刻。
对于每个测试用例,打印一个整数—— k 的最小值
4 2 5 1 5 3 10 2 4 10 5 3 1 2 4 5 7 4 1000 3 25 64 1337
3 4 1 470Note在第一个示例中,对于 k=3,伤害以秒 [1,2,3,5,6,7] 为单位造成。 在第二个示例中,对于 k=4,伤害以秒为单位 [2,3,4,5,6,7,10,11,12,13]。 在第三个示例中,对于 k=1,伤害以秒 [1,2,4,5,7] 为单位造成