#CF1993C. Light Switches
Light Switches
电灯开关
时间限制:2 秒
空间限制:256 MB
有一间公寓,包含 个房间,初始时所有灯都是熄灭的。
为了控制这些房间的灯,主人决定在每个房间安装芯片,每个房间恰好安装一个芯片,且芯片安装的时间各不相同。具体来说,安装时间由数组 表示,其中 是第 个房间安装芯片的时刻(单位:分钟)。
芯片一旦安装,就会每隔 分钟改变一次房间灯的状态 —— 它先让灯亮 分钟,然后熄灭 分钟,再点亮 分钟,如此循环。换言之,第 个房间的灯在时刻 发生状态切换。
问最早的时刻,使得所有房间的灯都同时亮着。
输入格式
第一行包含一个整数 ()—— 测试数据组数。
每组测试数据的第一行包含两个整数 和 ()—— 房间数和芯片的切换周期。
第二行包含 个互不相同的整数 ()—— 芯片的安装时刻。
保证所有测试数据的 之和不超过 。
输出格式
对于每组测试数据,输出一个整数 —— 题目所求的最早时刻(分钟)。如果不存在所有房间灯都亮的时刻,输出 。
样例输入
9
4 4
2 3 4 5
4 3
2 3 4 5
4 3
3 4 8 9
3 3
6 2 1
1 1
1
7 5
14 34 6 25 46 7 17
6 5
40 80 99 60 90 50
6 5
64 40 50 68 70 10
2 1
1 1000000000
样例输出
5
-1
10
8
1
47
100
-1
-1
样例解释
- 第一个样例:在时刻 ,所有灯都亮着,且没有任何芯片在此之前关闭灯。答案为 。
- 第二个样例:由于 ,第 盏灯亮的时刻为 ;第 盏灯亮的时刻为 。两个序列没有公共时刻,因此永远不会同时亮。
- 第三个样例:第 和第 盏灯在时刻 和 会熄灭,但芯片会在时刻 和 重新点亮它们。第 和第 盏灯在时刻 也会亮,因此最早同时亮是时刻 。