#2328. 「清华集训 2017」避难所

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: samzhang

题目描述

“B君啊,你当年的伙伴都不在北京了,为什么你还在北京呢?”

“大概是因为出了一些事故吧,否则这道题就不叫避难所了。”

“唔,那你之后会去哪呢?”

“去一个没有冬天的地方。”

对于一个正整数 nn,我们定义他在 bb 进制下,各个位上的数的乘积为 p=F(n,b)p = F(n, b)

比如 F(3338,10)=216F(3338, 10) = 216

考虑这样一个问题,已知 ppbb,求最小的 nn 满足 p=F(n,b)p = F(n, b)

这是一个非常有趣的问题,对于一些 bb 来说,我们可以贪心来做,比如如果 b=10,p=216b=10, p=216

我们可以从 b1b-122 试除,直到 pp11 为止,答案是 389389,可以验证 389389 是满足 p=F(n,b)p = F(n, b) 最小的 nn

但是对于一些进制 bb,是不能用贪心做的,比如 b=9,p=216b = 9, p = 216。使用贪心得到的解是 33383338,而最优解是 666666。(均为 99 进制下的。)

本题便是在给定进制 bb 的情况下,举出一个这样的反例,或指出这样的反例不存在。

由于计算资源所限,反例中所有数字的乘积不能超过 101810^{18}。如果最小的反例中所有数字的乘积超过了 101810^{18},那么也应该输出 1-1

输入格式

从标准输入读入数据。

第一行一个整数 tt,表示一共有 tt 组数据。

接下来每行一个整数 bb,表示进制。

输出格式

输出到标准输出。

如果不存在反例,输出一行一个整数 1-1

如果存在反例,首先输出一个整数 kk,表示反例 nn 的位数,接下来在同一行输出 kk 个十进制整数,表示任意一个反例的最优解。

样例

输入

3
8
9
10

输出

-1
3 6 6 6
-1

数据范围与提示

对于第 11 个测试点,分值为 30301n321 \leq n \leq 32

对于第 22 个测试点,分值为 40401n1001 \leq n \leq 100

对于第 33 个测试点,分值为 30301t200,1n1000001 \leq t \leq 200, 1 \leq n \leq 100000