#HDU8111. 数字王国的警报密码

数字王国的警报密码

题目描述

在数字王国中,国王最近遇到一个棘手的难题。他需要为宝库设置一系列长度为 nn 且严格递增的密码数字。然而,王国的古老魔法有一个特殊的禁忌:任何一个连续密码段(至少包含一个数字)的总和,都绝对不能是某个神秘数字 kk 的倍数。一旦违反,宝库的警报就会响起,后果不堪设想。 国王将此重任交给了你,他的首席密码师。你需要为每次任务设计符合要求的密码序列。 作为最优秀的密码师,你不仅要构造出满足条件的序列,还要确保它是最优的:在所有可能的合法序列中,你需要找出那个字典序最小的序列。

什么是字典序最小? 我们比较两个长度相同的序列 A=[a1,a2,...,an]A=[a_1,a_2,...,a_n]B=[b1,b2,...,bn]B=[b_1,b_2,...,b_n]:

  • 从第一个位置开始比较
  • 找到第一个满足 aibia_i \ne b_i 的位置 ii
  • 如果 ai<bia_i<b_i,则称序列 A 的字典序小于序列 B
  • 如果所有对应位置的元素都相等,则两个序列字典序相同

你将面对多次挑战(多次测试数据)。每次挑战会给你两个关键数字: nn:你需要设置的密码序列的长度 kk:那个神秘的危险数字

你的任务是构造一个严格单调递增的正整数序列a1,a2,...,ana_1,a_2,...,a_n,使得该序列中任意一个长度至少为 11 的连续子序列(即连续几个密码)的数字之和,都不能被 kk 整除,并且使它的字典序最小。

输入格式

第一行输入一个整数 T(1T100000)T(1 \le T \le 100000) 代表你将面临的挑战次数

接下来 TT 组数据,每组数据一行,包含两个整数 nnk(1n,k2×105)k(1\le n,k\le 2\times 10^5)

注意:所有挑战中的 kk 的总和不会超过 2×1062×10^6

输出格式

对于每一次挑战: 如果存在满足要求的密码序列,则输出一行 nn 个用空格分隔的整数,代表你构造的序列。 如果无论怎样都无法构造出满足“连续和禁忌”的递增序列,则输出一行 1-1

输入输出样例 #1

输入 #1

3
3 10
2 3
100 1

输出 #1

1 2 3
1 4
-1