C. 烤串

Medium

时间限制:1000 ms

内存限制:256 MiB

题面

img 今天,余大厨要为岁家的兄弟姐妹们准备一场烧烤盛宴。由于烤串数量众多,为了不让大家久等,余大厨决定使用一种特殊的魔法来加快翻面的速度。现在,他需要你的帮助来规划如何最高效地完成所有烤串的翻面工作。

现有 n 个烤串需要翻面。余大厨每次可以选择一个位置 ii进行翻面操作,但魔法效果会使第 i 个烤串及其左右各 k 个相邻烤串(即区间 [ik,i+k][i-k,i+k])同时被翻面。需要注意的是,如果某一端超出烤串序列的范围(即 ik<1i−k<1i+k>ni+k>n),则魔法效果仅作用于序列内的烤串,注意每个烤串可以被重复翻转。

如果存在多种操作方案都能达到最少操作次数,需要输出字典序最小的方案。

  • 字典序比较规则:比较两个操作序列时,从左到右逐个位置对比,第一个不同的位置中数值较小的序列字典序更小
  • 示例:序列 [1,3] 的字典序小于 [1,4],序列 [1,3] 的字典序小于 [2,1]

输入格式

第一行包含一个整数 TT1T1031 \leq T \leq 10^3),表示测试样例的个数。 接下来 TT 行,每行包含两个整数 nnkk1n1031 \leq n \leq 10^31k1031 \leq k \leq 10^3),分别表示该样例中烤串的数量和魔法的影响范围,两个整数之间用空格分隔。

输出格式

对于每个测试样例,输出两行:

  • 第一行输出一个整数,表示使所有烤串翻面的最少操作次数
  • 第二行输出若干个整数,表示每次翻面操作选择的位置(按升序排列,整数之间用空格分隔)。如果存在多种方案,输出字典序最小的方案。

样例

输入

2
7 2
5 1

输出

2
1 6
2
1 4

提示

在第一组示例中,第一次操作翻转了第1、2、3号烤串,第二次操作翻转了第4、5、6、7号烤串。

在第二组示例中,虽然翻转第2号和第5号烤串也是正确的解法,但翻转第2号和第4号烤串,或第1号和第5号烤串都是错误的解法——因为在这些操作后,第3号烤串仍会保持初始状态