#52. Grasshopper on a Line

Grasshopper on a Line

给定两个整数 xxkk。一只蚱蜢从数轴 OXOX 上的点 00 出发。

一次移动中,它可以向左或向右跳一个整数距离 dd,但要求该距离不能被 kk 整除,即 d≢0(modk)d \not\equiv 0 \pmod{k}(注意 dd 可以为负表示向左跳,正表示向右跳,且 d0d\ne 0)。

请你求蚱蜢到达点 xx 所需的最少步数,并输出一种对应的跳跃方案。


输入格式

  • 第一行一个整数 tt1t10001 \le t \le 1000),表示测试用例数量。
  • 每个测试用例一行两个整数 x,kx,k1x100, 2k1001 \le x \le 100,\ 2 \le k \le 100),分别表示目标位置与跳跃限制。

输出格式

对每个测试用例输出两行:

  1. 第一行输出一个整数 nn:到达点 xx 的最少步数。

  2. 第二行输出 nn 个整数 d1,d2,,dnd_1,d_2,\dots,d_n,满足:

    • 每个 did_i不能被 kk 整除
    • di>0d_i>0 表示向右跳,di<0d_i<0 表示向左跳;
    • 00 出发按顺序跳完后,最终位置恰好为 xx,即 i=1ndi=x\sum_{i=1}^n d_i = x
    • 每个跳跃距离范围为 109di109-10^9 \le d_i \le 10^9

题目保证在给定约束下一定有解。

原题允许输出任意一种最优方案。为保证固定输出,本题统一采用如下确定性输出规则(同样保证最少步数):

  • xmodk0x \bmod k \ne 0:输出 n=1n=1,并输出一步 xx
  • 否则:输出 n=2n=2,并输出两步 11x1x-1(此时 1≢0(modk)1 \not\equiv 0 \pmod{k},且 x1≢0(modk)x-1 \not\equiv 0 \pmod{k} 因为 x0(modk)x \equiv 0 \pmod{k} 推出 x11(modk)x-1 \equiv -1 \pmod{k})。

样例

输入

3
10 2
10 3
3 4

输出(其中一种)

2
7 3
1
10
1
3