跳棋
题号:NC214053
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 64 M,其他语言128 M
64bit IO Format: %lld

题目描述

kcxz制作了一个简易的跳棋盘,如下图所示

其中每一个圆圈的内部只能放一个跳棋棋子,圆圈内部的数字代表该圆圈的编号。kcxz现在手上有12个棋子,质量呈等差数列分布,分别为1克、2克、...、12克。

现在已经有两个棋子在该棋盘中,分别位于1号圆圈内和9号圆圈内(图中红色的两个圆圈)。现在kcxz想将剩余的10个棋子放入剩余的10个圆圈中,使得该棋盘处于“超平衡态”——每一条直线上的四个棋子的质量之和相等,例如:编号为1,3,6,8的这四个棋子处于同一条直线上,它们的质量之和需要与其它直线上的四个棋子的质量之和相同,同一个棋子可能处于不同的直线上。现在请你告诉kcxz这10个棋子应该怎样放置。

输入描述:

本题含有多组测试数据,每一组测试数据占一行,共两个数字,代表1号圆圈的棋子质量和9号圆圈的棋子质量。 
本题保证所有的测试数据的组数之和不超过

输出描述:

对于每组测试数据,按照圆圈的编号从小到大输出该圆圈编号的棋子的质量(包括红色圆圈的棋子),使得该棋盘呈“超平衡状态”(意义如同题目描述)。如果有多种可能的放置情况,请按照字典序从小到大输出所有的情况,每个情况占一行。如果没有放置的方法,则只单行输出一个"-1"(不包含引号)。在输出完一组测试数据所有的结果之后,需要额外输出一个空行。最后一组数据下面的换行以及行末的空格会被忽略不计。
示例1

输入

复制
12 2
1 12
12 4

输出

复制
12 11 3 4 8 6 1 5 2 10 9 7
12 11 4 5 6 3 1 7 2 9 8 10

-1

12 9 5 2 10 6 1 3 4 8 11 7
12 10 1 9 6 5 2 8 4 11 3 7
12 10 6 1 9 5 2 3 4 8 11 7

备注:

本题中的字典序的意思是,如果序列A、B的前i(0<=i<=9)个数都相同,且A序列的第i+1个数小于B序列的第i+1个数,那么A序列小于B序列。