给定正整数 $s$ 和 $t$。你可以执行以下操作任意次(包括零次):
- 选择一个整数 $u$,满足 $1 \le u \le 4 \times 10^{18}$ 且 $s + u$ 是一个完全平方数,然后将 $s$ 替换为 $u$。
求将 $s$ 变为 $t$ 所需的最少操作次数,并给出一组操作序列。 形式化地,寻找一个整数序列 $(u_1, u_2, \dots, u_K)$ 满足以下条件:
- $K$ 是将 $s$ 变为 $t$ 所需的最少操作次数。
- 对于每个 $i = 1, 2, \dots, K$,满足条件 $1 \le u_i \le 4 \times 10^{18}$。
- 令 $u_0 = s$,对于每个 $i = 1, 2, \dots, K$,和 $u_{i-1} + u_i$ 是一个完全平方数。
- $u_K = t$。
题目保证在给定约束下,总是存在一种将 $s$ 转换为 $t$ 的方法,且操作次数不超过 $10^6$。 你有 $T$ 组测试数据;请解决每一组数据。
输入格式
输入通过标准输入给出,格式如下:
$T$ $case_1$ $case_2$ $\vdots$ $case_T$
每组测试数据的格式如下:
$s \ t$
- $1 \le T \le 3 \times 10^5$
- $1 \le s, t \le 10^9$
- $s \neq t$
- 所有测试数据的操作次数之和($= K$)不超过 $10^6$。
- 所有输入值均为整数。
输出格式
输出 $T$ 行。在第 $i$ 行,按以下格式输出第 $i$ 组测试数据的答案:
$K \ u_1 \ u_2 \ \dots \ u_K$
如果存在多种答案,输出任意一种即可。
样例
样例输入 1
3 8 3 20 24 998236771 998244353
样例输出 1
2 1 3 3 5 76 24 1 998244353
说明
对于第一组测试数据,$8 + 1 = 9$ 且 $1 + 3 = 4$,两者均为完全平方数。此外,无法通过单次操作将 $8$ 变为 $3$。