#include<stdio.h>

void solve(int a, int b, int c);
int my_sqrt(int a);
int abs(int a);

int main()
{
    char buf[64];
    int a, b, c;
    while(1){
        fgets(buf, sizeof(buf), stdin);
        sscanf(buf, "%d %d %d", &a, &b, &c);
        if(a == 0) break;
        solve(a, b, c);
    }
    return 0;
}

void solve(int a, int b, int c)
{
    int p, q, r, s;
    int i, j;
    int root_a = my_sqrt(a);
    int max_s;

    for(r = 1; r <= root_a; r++){
        if(a%r != 0) continue;
        p = a/r;
        max_s = (p == r ? my_sqrt(abs(c)) : abs(c));
        for(s = -abs(c); s <= max_s; s++){
            if(s == 0 && c != 0) continue;
            if(s == 0 && c == 0){
                if(p == r){
                    if(b > 0) printf("%d %d %d %d\n", p, b, r, 0);
                    else printf("%d %d %d %d\n", p, 0, r, b);
                }else printf("%d %d %d %d\n", p, b, r, 0);
                return;
            }
            if(c%s != 0) continue;
            q = c/s;
            if(p*s + q*r == b){
                printf("%d %d %d %d\n", p, q, r, s);
                return;
            }
        }
    }

    printf("Impossible\n");
}

int abs(int a)
{
    return a >= 0 ? a : -a;
}

int my_sqrt(int a)
{
    int res;
    for(res = 0; res * res <= a; res++);
    return --res;
}

