package main
import (
"bufio"
"fmt"
"os"
)
var reader *bufio.Reader
var writer *bufio.Writer
func gcd(a, b int64) int64 {
for b != 0 {
a, b = b, a%b
}
return a
}
func solve() {
var a, b, c, d int64
fmt.Fscan(reader, &a, &b, &c, &d)
ab := a * b
bestX, bestY := int64(-1), int64(-1)
var i int64
for i = 1; i*i <= ab; i++ {
if ab%i != 0 {
continue
}
for _, pair := range [][2]int64{{i, ab / i}, {ab / i, i}} {
g1, g2 := pair[0], pair[1]
x := ((a / g1) + 1) * g1
y := ((b / g2) + 1) * g2
if x <= c && y <= d {
if (x*y)%ab == 0 {
bestX, bestY = x, y
break
}
}
}
if bestX != -1 {
break
}
}
if bestX == -1 {
fmt.Fprintln(writer, -1, -1)
return
}
fmt.Fprintln(writer, bestX, bestY)
}
func main() {
reader = bufio.NewReader(os.Stdin)
writer = bufio.NewWriter(os.Stdout)
defer writer.Flush()
var t int
fmt.Fscan(reader, &t)
for ; t > 0; t-- {
solve()
}
}