B. 进制变换
time limit per test
1 second
memory limit per test
512 megabytes
input
standard input
output
standard output

小 F 最近刚学完进制,但是小 F 不喜欢 $$$0$$$ 次幂,于是决定创造一种基于进制但又不同于进制的变换方式。

对于一个 $$$n$$$ 位的十进制数字 $$$\overline{x_{n-1}x_{n-2} \cdots x_0}$$$,选取一个正整数参数 $$$k$$$ 作为进制,则:

$$$$$$ f(n)=\sum_{i=0}^{n-1} x_i \times k^{i+1} $$$$$$

小 F 对这种变换非常满意,便询问小 M 如何通过重复应用这种变换把 $$$a$$$ 变为 $$$b$$$ ,每次变换可以重新选择 $$$k$$$,要求变换次数不超过 $$$10$$$ 次,且每次得到的数字小于等于 $$$3 \times 10^{18}$$$。

Input

第一行一个整数 $$$T$$$($$$1 \leq T \leq 10^5$$$),表示一共有 $$$T$$$ 组数据。

对于每组数据:

  • 仅一行,包含两个整数 $$$a$$$ 和 $$$b$$$($$$1 \leq a,b \leq 10^9$$$,$$$a \neq b$$$)。
Output

对于每组数据:

  • 第一行输出操作次数 $$$m$$$($$$1 \leq m \leq 10$$$)。
  • 接下来 $$$m$$$ 行,每行输出两个整数,分别表示第 $$$i$$$ 次操作选择的 $$$k_i$$$($$$1 \leq k_i \leq 3 \times 10^{18}$$$)和第 $$$i$$$ 次操作后得到的数字 $$$x_i$$$($$$1 \leq x_i \leq 3 \times 10^{18}$$$)。
Example
Input
2
8 32
1 10
Output
2
7 56
2 32
1
10 10
Note

在样例一中,第一次变换选择 $$$k_1=7$$$ ,变换后的答案 $$$x_1 = 8 \times 7^1 = 56$$$ ;第二次变换选择 $$$k_2=2$$$ ,变换后的答案 $$$x_2 = 6 \times 2^1 + 5 \times 2^2 = 12 + 20 = 32$$$。