Flower 和 Rainbow 想种植一棵 Forever Tree,这棵树需要满足以下三个条件: Forever Tree 是一棵有根树,且第 个节点的权值为 ; 树上所有相邻节点的权值乘积是 的倍数,换句话说,对于树中每一条边 ,均需满足 是 的倍数; 每个节点直接连接的孩子节点数量不超过 。 现在有一个长度为 的序列 ,依次表示每一个节点的权值,Flower 和 Rainbow 想以这个序列种植一棵 个节点的 Forever Tree。请你帮助他们判断是否存在一棵满足条件的树,如果存在,请输出任意一棵满足条件的树。 【名词解释】 孩子节点:也称子节点。在一棵有根树中,所有与节点 直接相连,且距离根节点比 更远的节点,均称为 的孩子节点。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数 代表数据组数,每组测试数据描述如下:第一行输入两个整数 ,表示序列的长度、每个节点的最大孩子数量。第二行输入  个整数 ,依次表示每一个节点的权值。除此之外,保证单个测试文件的 之和不超过 。


输出描述:
对于每组测试数据,新起一行。如果不存在这样的树,直接输出 ;否则,请参考下方的格式输出:第一行输出一个整数 ,表示选择的根节点编号;此后  行,第 行输出两个整数 ,表示第 条树边连接节点  和 。
示例1

输入

6
1 1
1
4 3
1 2 3 4
4 1
1 2 3 4
5 1
2 6 2 1 2
6 2
2 2 2 2 2 2
3 1
1 4 3

输出

1
4
4 1
4 2
4 3
-1
-1
6
2 5
6 5
1 4
6 4
3 5
1
1 2
2 3

说明

\hspace{15pt}对于第一组样例,树上只有一个节点,选择  作为根节点即可;
\hspace{15pt}对于第二组样例,其中一种可行的构造方案是选择 作为根节点, 均为根节点的子节点;
\hspace{15pt}对于第三组样例,可以证明,不存在一种合法的构造方案。
加载中...