小苯的前缀gcd构造
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
Special Judge, 64bit IO Format: %lld

题目描述

\hspace{15pt}对于一个长度为 n 的数组 \{a_1,a_2,\dots,a_n\},小苯先定义 f\left(i \right)=\gcd\left(a_1,a_2,\dots,a_i \right)^\texttt{[1]},基于此,再定义数组的权值为:

\sum\limits_{j = 1}^{n}{f(j)}

\hspace{15pt}现在,小红想让小苯构造一个长为 n 且所有元素都在 \left[ 1,m \right] 之内的数组,满足其权值恰好为 x
\hspace{15pt}请你帮帮小苯。

【名词解释】
\hspace{15pt}gcd^\texttt{[1]}:即最大公因数,指多个整数共有因数中最大的一个。例如,121830 的公因数有 1,2,3,6,其中最大的因数是 6,因此 \gcd(12,18,30)=6。特别地,定义 \gcd(x)=x

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leqq T\leqq 10\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}第一行输入三个整数 n,m,x\left(1\leqq n,m \leqq 50;\ 1\leqq x \leqq n\times m\right)
\hspace{15pt}除此之外,保证单个测试文件的 n 之和、m 之和不超过 50

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果不存在满足条件的数组,直接输出 -1;否则,在一行上输出 n 个整数,代表所构造的数组。
\hspace{15pt}如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性。
示例1

输入

复制
1
5 4 6

输出

复制
2 1 1 1 1

说明

\hspace{15pt}在这个样例中:
\hspace{23pt}\bullet\,f(1) = \gcd(a_1) = 2
\hspace{23pt}\bullet\,f(2) = \gcd(a_1,a_2) = 1
\hspace{23pt}\bullet\,f(3) = \gcd(a_1,a_2,a_3) = 1
\hspace{23pt}\bullet\,f(4) = \gcd(a_1,a_2,a_3,a_4) = 1
\hspace{23pt}\bullet\,f(5) = \gcd(a_1,a_2,a_3,a_4,a_5) = 1
示例2

输入

复制
1
5 5 4

输出

复制
-1