C1635 [Wannafly冬令营2018Day1]拆拆拆数

内存限制:256 MB 时间限制:1000 ms

题目描述

读入 $A$ 和 $B$,$wls$ 想请你把 $A$ 拆成 $a_1, a_2,\cdots, a_n$,把 $B$ 拆成 $b_1, b_2, \cdots, b_n$,满足

  1. 对于所有的 $i(1 \leq i \leq n),a_i, b_i \geq 2$ 且 $gcd(a_i, b_i) = 1$

  2. $\sum_{i=1}^{n}{a_i} = A$,$\sum_{i=1}^{n}{b_i} = B$

如果有多组满足条件的 $a$ 和 $b$,请输出 $n$ 最小的任意一组即可。

如果无解,请输出 $-1$。

输入格式

第一行一个整数 $test$ 表示数据组数。

接下来 $test$ 行,每行两个整数 $A$,$B$。

$1 \leq test \leq 100000$

$5 \leq A, B \leq 10^{18}$

输出

对于每组数据,第一行输出一个整数 $n$;

接下来 $n$ 行每行输出两个整数 $a_i,b_i$ 表示答案。

样例

样例输入 1

2 6 5 100000 100000

样例输出 1

1 6 5 2 49999 50001 50001 49999

提示