# AOJ 1106 Factorization of Quadratic Formula

# a の因数分解。
# p >= r を満たすすべての [p, q] を返す。
def factorize_a(a)
  max = Math.sqrt(a).to_i
  (1..max).select {|x| a % x == 0}.map {|x| [a / x, x]}
end

# c の因数分解。
# すべての [q, s] を返す。
# p == r のときは q >= s を満たすようにする。
def factorize_c(c, p, r)
  if c.zero?
    raise "c is zero"
  elsif c > 0
    max = Math.sqrt(c).to_i

    if p == r
      # q >= s を満たすようにする
      factors_plus = (1..max).select {|x| c % x == 0}.map {|x| [c / x, x]}
      factors_minus = factors_plus.map {|q, s| [-s, -q]}

      factors_plus + factors_minus
    else
      factors_plus_1 = (1..max).select {|x| c % x == 0}.map {|x| [c / x, x]}
      factors_plus_2 = factors_plus_1.map {|q, s| [s, q]}
      factors_plus = factors_plus_1 + factors_plus_2
      factors_minus = factors_plus.map {|q, s| [-q, -s]}

      factors_plus + factors_minus
    end
  else
    max = Math.sqrt(-c).to_i

    if p == r
      # q >= s を満たすようにする
      factors1 = (1..max).select {|x| c % x == 0}.map {|x| [-c / x, -x]}
      factors2 = factors1.map {|q, s| [-s, -q]}

      factors1 + factors2
    else
      factors1 = (1..max).select {|x| c % x == 0}.map {|x| [-c / x, -x]}
      factors2 = factors1.map {|q, s| [s, q]}
      factors3 = factors1.map {|q, s| [-q, -s]}
      factors4 = factors3.map {|q, s| [s, q]}

      factors1 + factors2 + factors3 + factors4
    end
  end
end

while line = gets
  a, b, c = line.split.map(&:to_i)
  break if a.zero? && b.zero? && c.zero?

  possible = false

  pr = factorize_a(a)
  pr.each do |p, r|
    if c.zero?
      if b % p == 0
        possible = true
        s = b / p
        q = 0
        puts [p, q, r, s].join(" ")
      elsif b % r == 0
        possible = true
        q = b / r
        s = 0
        puts [p, q, r, s].join(" ")
      end
    else
      factorize_c(c, p, r).each do |q, s|
        if p * s + q * r == b
          possible = true
          puts [p, q, r, s].join(" ")
          break
        end
      end
    end

    break if possible
  end

  puts "Impossible" unless possible
end