不定方程
题号:NC54563
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

对于正整数a,b,我们有不定方程ax=by,其中x,y也是正整数。令c=ax=by,我们设为该不定方程所有可能的的解中最小的一个。
给定a,b后求解是一项简单的工作。现在我们把问题变得稍微复杂一些,我们给出x,y,你需要判断它们是否满足一组,其中为该不定方程所有可能的的解中最小的一个。

输入描述:

第一行一个整数,表示数据的组数。
接下来一共T行,第行表示第i组数据。每一行两个整数。x,y的含义如题目描述所示。

输出描述:

输出T行,第i行对应输入的第i组数据。
如果满足,输出三个整数,每个数之间存在空格。如果不满足则输出-1。
如果答案有多个,你可以输出其中任意一个,不能超过
示例1

输入

复制
1
3 5

输出

复制
5 3 15

说明

5*3=3*5=15,可以证明如果a=5,b=3,那么对于ax=by=c,15是c可能的最小的取值。
如果你输出10 6 30,那么这同样是一个正确的答案。因为有10*3=6*5=30,且同样30是可能的最小的取值。