XCPC 的比赛主办方通常会为选手提供餐券,假设主办方计划为每位选手提供 k 张餐券,总面值 n 元。
主办方希望尽量避免找钱或多花钱的情况,因此这 k 张餐券能够恰好表示
的所有钱数。
同时主办方希望餐券纸张的印制数越少越好,因此 k 需要尽可能地小。
显然对于给定的总面值 n,餐券张数 k 有最小值 kmin,当 k = kmin 时可能有多种设计方案,你只需要为主办方提供餐券面值按从小到大排序后的字典序最小和最大的方案。
更准确地说,给定 n,从满足下列条件的序列 a1, a2, ..., ak 中:
你需要找到 k 最小的序列,输出 k 的最小值 kmin 以及 k = kmin 时字典序最小和最大的序列。
本题每个测试数据包含多组测试用例。
第一行,输入一个整数 T (1 ≤ T ≤ 104),表示测试用例组数。
接下来 T 行,每行输入一个整数 n (1 ≤ n ≤ 109),表示总面值 n 元。
输出共 3T 行,对于每组测试用例,输出三行:
2 3 5
2 1 2 1 2 3 1 1 3 1 2 2
样例解释如下:
第一组测试用例,n = 3:
因此 n = 3 时 kmin = 2,字典序最小的方案为 {1, 2},字典序最大的方案为 {1, 2}。
第二组测试用例,n = 5:
因此 n = 5 时 kmin = 3,字典序最小的方案为 {1, 1, 3},字典序最大的方案为 {1, 2, 2}。