#M11. Kaleidoscope
Kaleidoscope
Description
在各种万花筒纪念品中,有一个万花筒你一见钟情:它并没有华丽的图案,而是有一个非常优美的性质。于是你立刻买下了它。
这个万花筒上画着一个 的正整数数阵,这 个正整数两两不同,且它有一个且拥有一个你一眼就发现了而且认为很优美的性质:
对于任意相邻(四联通,即有公共边算相邻,仅公共点不算相邻)的两个元素 , 非零且相同。
不幸的是,你不小心弄坏了它。虽然你的观察力很强,但是你的记忆力不太好——你不记得万花筒上写着什么数字了。所以你决定仿照这个万花筒自己做一个。由于你的技艺不精,为了防止数字过大导致写不下,每个数字的值需要严格小于 .
当然,原本的万花筒由于空间安排的巧妙性,并不需要严格小于 的限制。所以有可能在加上这个数值限制后,你无法制作出一个具有同样性质的万花筒,这种情况下输出 .
Format
Input
第一行一个正整数 表示数据组数。
对于每组数据,仅一行一个正整数 表示万花筒大小为 。
对于所有数据中有解的数据 ,,对于所有数据中的 ,满足 .
Output
对于每组数据,若有解,输出一个 的数阵表示你的构造结果。若无解仅输出一个数 .
Samples
1
3
10 7 4
63 66 135
6 9 12
Limitation
1s, 256MiB.
所有数据属于一个 subtask.