小莉迪亚(Lidia)喜欢玩数字游戏。今天她有一个正整数 $n$,她想将其分解为若干个正整数的乘积。
因为莉迪亚还小,她喜欢玩“差值很小”的数字。因此,分解中的所有数字之差最多为 $1$。当然,分解中所有数字的乘积必须等于 $n$。如果两个分解包含的整数个数相同,且存在一种排列使得第一个分解可以变换为第二个分解,那么她认为这两个分解是相同的。
编写一个程序,找出所有莉迪亚今天可以玩的分解方案。
输入仅包含一行,为一个整数 $n$ ($1 \le n \le 10^{18}$)。
第一行输出分解方案的总数,如果方案数有无穷多个,则输出 $-1$。如果方案数有限,请在后续行中打印出所有分解方案。每行首先输出该分解中元素的个数 $k_i$,随后输出这 $k_i$ 个整数(顺序不限)。请注意,仅顺序不同的分解被视为相同。
样例
输入格式 1
12
输出格式 1
3 1 12 3 2 3 2 2 4 3
输入格式 2
1
输出格式 2
-1
说明
在第二个样例中,$1$ 可以表示为任意数量的 $1$ 的乘积。