/* ACM ICPC Japan Domestic 99 Problem C: Factorization of Quadratic Formula by Naoyuki Tamura (tamura@kobe-u.ac.jp) */ import java.io.*; import java.util.*; public class C { static boolean dbg = false; static DataInputStream in = new DataInputStream(System.in); static int a; static int b; static int c; static int p; static int q; static int r; static int s; static void debug(String msg) { if (dbg) System.err.print(msg); } static boolean read() throws Exception { String line = null; debug("# Enter\n"); line = in.readLine(); StringTokenizer st = new StringTokenizer(line); a = Integer.parseInt(st.nextToken()); b = Integer.parseInt(st.nextToken()); c = Integer.parseInt(st.nextToken()); if (a == 0) return false; return true; } static boolean check() { if (a != p*r || b != p*s+q*r || c != q*s) return false; return p > r || (p == r && q >= s); } static boolean solve() throws Exception { int d = b*b - 4*a*c; if (d < 0) return false; int t = (int)Math.round(Math.sqrt(d)); if (d != t*t) return false; for (r = 1; r*r <= a; r++) { p = a / r; if (a != p*r) continue; q = (b + t) / (2 * r); s = (b - t) / (2 * p); if (check()) return true; q = (b - t) / (2 * r); s = (b + t) / (2 * p); if (check()) return true; } return false; } public static void main(String args[]) { if (args.length > 0) dbg = true; try { while (read()) { if (solve()) System.out.println(p+" "+q+" "+r+" "+s); else System.out.println("Impossible"); } } catch (Exception e) { e.printStackTrace(); } } }