给定一个长度为 n 的序列 ,一个正整数 m,以及一个非负整数 k,下标从 0 开始的无穷序列 b 如下所示:
你可以对序列 a 执行以下操作:
选择两个后缀,其中一个在模 m 意义下加上序列 b,另一个在模 m 意义下减去序列 b,形式化描述如下:
注意操作3.是在操作2.修改完后的数组上进行,执行以上三步算一次操作。要求操作结束后序列 a 为全0序列,输出最少操作次数,若无解输出-1。
符号说明:
: k 个不同的球里取 i 个的取法方案数。
,其中
表示对 x 下取整,例如:
;
;
;
每个测试点包含多个测试用例;
第一行一个整数 T (
)---表示测试用例的数量 。每个测试用例的格式如下:
第一行三个整数 n, k, m (
,
,
)---分别表示序列长度以及给定的 k 和模数;
第二行 n 个整数
(
)---表示给定的序列;
保证所有测试用例的 n 之和不超过
。
有 T 组输出,每组输出的格式如下:
第一行如果答案存在则输出最少操作次数,否则输出-1;