同源
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
Special Judge, 64bit IO Format: %lld

题目描述

Compute 对于某些特殊的数字有着独特的爱好。

例如,有三个正整数 a, b, c 和某一个目标值 k,如果 ,并且  ,那么他认为这三个数是一组好数。 其中表示整数 x 和 y最大公约数

当然这不够刺激。现在 Compute 想要知道,如果已知三个数的和 n 和目标值 k,是否存在一组 a, b, c 可以让它们是一组好数。

输入描述:

第一行输入一个整数 T (),表示数据的组数。对于每组数据:

仅一行包含两个整数 n, k (),分别表示 a, b, c 的和与目标值。

输出描述:

对于每一组数据,在一行输出三个整数,中间以空格分隔,表示找到的一种方案。

如果有多种方案,任意输出其中一种即可。

特别地,如果没有满足条件的方案,在一行输出 -1 -1 -1。
示例1

输入

复制
2
20 2
12 2

输出

复制
4 6 10
-1 -1 -1