val Int.absoluteValue: Int
    get() {
        return if (this >= 0) this else -this
    }
val Int.sign: Int
    get() {
        return if (this >= 0) 1 else -1
    }
tailrec fun loop(): Unit {
    val (a, b, c) = readLine()!!.trim().split(' ').map(String::toInt)
    if (a == 0) return
    if (c != 0) {
        val p = (1 .. a).filter { a % it == 0 }
        val q = (1 .. c.absoluteValue).filter { c % it == 0 }.map { b.sign * it }
        println(p.find { i ->
            q.find { j -> i * j + (a / i) * (c / j) == b } != null
        }?.let{i -> q.find{j -> i * j + (a / i) * (c / j) == b}!!.let{j ->
            if (i * i == a) {
                if (j >= c / j) {
                    "$i $j ${a / i} ${c / j}"
                } else {
                    "$i ${c / j} ${a / i} $j"
                }
            }else if (i * i > a){
                "$i ${c / j} ${a / i} $j"
            }else {
                "${a / i} $j $i ${c / j}"
            }
        }} ?: "Impossible")
    }else {
        if (a > 1 || b >= 0) println("$a $b 1 0")
        else println("1 0 1 $b")
    }
    loop()
}
fun main(args:Array<String>?): Unit {
    loop()
}
