#include using namespace std; typedef long long int64; int main() { int64 A, B, C; cin >> A >> B >> C; bool flag = false; auto f = [&](int64 x) { return (((x + A) * x + B) * x + C); }; auto g = [&](__int128 x) { return (((x + A) * x + B) * x + C); }; vector< int64 > vs; for(int64 X = -10000000; X < 10000000; X += 8) { if(g(X) == 0) { vs.push_back(X); } if(g(X + 1) == 0) { vs.push_back(X + 1); } if(g(X + 2) == 0) { vs.push_back(X + 2); } if(g(X + 3) == 0) { vs.push_back(X + 3); } if(g(X + 4) == 0) { vs.push_back(X + 4); } if(g(X + 5) == 0) { vs.push_back(X + 5); } if(g(X + 6) == 0) { vs.push_back(X + 6); } if(g(X + 7) == 0) { vs.push_back(X + 7); } } if(vs.size() == 3) { for(int i = 0; i < vs.size(); i++) { if(i) cout << " "; cout << vs[i]; } return (0); } vs.clear(); for(int64 X = -1000000000; X < 1000000000; X += 8) { if(f(X) == 0) { if(flag++) cout << " "; cout << X; } if(f(X + 1) == 0) { if(flag++) cout << " "; cout << X + 1; } if(f(X + 2) == 0) { if(flag++) cout << " "; cout << X + 2; } if(f(X + 3) == 0) { if(flag++) cout << " "; cout << X + 3; } if(f(X + 4) == 0) { if(flag++) cout << " "; cout << X + 4; } if(f(X + 5) == 0) { if(flag++) cout << " "; cout << X + 5; } if(f(X + 6) == 0) { if(flag++) cout << " "; cout << X + 6; } if(f(X + 7) == 0) { if(flag++) cout << " "; cout << X + 7; } } cout << endl; }