问题 L: 请输入文本

内存限制:64 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:2 通过:2

题目描述

小远和小涛在玩一个游戏,游戏规则是这样的:

1.首先,他们把nn个相同的球分成mm堆,第ii堆小球数量为aiai

2.接着,每轮他们会从每堆中取出一个球,并将这些取出的球组成一个新的堆。

例如:初始有4个小球,分成3堆,每堆球数分别为1, 1, 2,第一轮从每堆中取出一个球,得到3个球,将它们组成一个新的堆,此时局面为0, 0, 1, 3,移除0堆,局面为1, 3,同理,第二轮后局面为2, 2,第三轮后局面为1, 1, 2,……

众所周知这个游戏是可以无限进行下去的。且经过几轮游戏,他们的局面可能陷入循环。循环中的局面个数称为循环长度(局面是否重复只和小球堆数和每堆球数有关,与顺序无关),比如刚刚的例子循环长度为3。

小远向小涛提出一个问题:

给定小球个数n和循环长度k,问是否存在一个初始局面,使得游戏陷入长度为k的循环?(如果多个答案,求出堆数m最小的那个,如仍有多个答案,求出字典序最小的那个)。小远和小涛急着去跑阳光长跑了,于是他们决定请你来解决这个问题。

输入格式

第一行一个正整数t ( 1≤t≤501t50 ) ,表示测试数据的组数。接下来每行两个正整数n ( 1≤n≤1061n106 ) 和k ( 1≤k≤1091k109 ) ,表示球的数量和循环长度。

输出格式

对于每组数据,输出一行,如果存在这样的初始局面,输出这个初始局面各堆球数,每个数字间用空格隔开;否则输出一个−11

输入样例 复制

3
1 1
2 1
3 1

输出样例 复制

1
-1
3

分类标签