题号:NC235945
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld
题目描述
给定一个

,请你将

到

中的所有整数划分为两个集合,使得第一个集合里的数的积等于第二个集合里的数的和。
输出第一个集合的数。无解输出

。
输入描述:
第一行一个
表示数据组数。
接下来

行,每行一个数

,

的含义与题意描述中的一致。

,

输出描述:
对于每组数据,若无解,输出一行一个

。
若有解,输出两行,第一行输出一个数

表示你所得到的第一个集合的数的个数。
第二行输出

个数,用空格隔开,表示第一个集合里的数。
输出的数必须互不相同,但是可以不按照升序排列。
示例1
说明
第一组:

第三组:
