#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main(){
    while(1){
        int a,b,c;
        cin >> a >> b >> c;
        if(a == 0) break;

        vector<int> factor_a;
        for(int i=1; i<=a; i++){
            if(a%i == 0) factor_a.push_back(i);
        }
        vector<int> factor_c;
        for(int i=1; i<=abs(c); i++){
            if(abs(c)%i == 0){
                factor_c.push_back(i);
                factor_c.push_back(-i);
            }
        }
        sort(factor_c.begin(), factor_c.end());

        bool found = false;
        for(auto r: factor_a){
            for(auto s: factor_c){
                int p = a/r;
                int q = c/s;    
                if(p*s +r*q == b){
                    cout << p << " " << q << " " << r << " " << s << endl;
                    found = true;
                    break;
                }
            }
            if(found) break;
        }
        if(c == 0){
            if(a == 1 and b < 0){
                cout << "1 0 1 " << b << endl;
            }else{
                cout << a << " " << b << " 1 0" << endl;
            }
            found = true;
        }
        if(!found){
            cout << "Impossible" << endl;
        }
    }
    return 0;
}
