#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } const long long MAX = 5100000; const long long INF = 1LL << 60; const long long mod = 1000000007LL; //const long long mod = 998244353LL; using namespace std; typedef unsigned long long ull; typedef long long ll; int main() { /* cin.tie(nullptr); ios::sync_with_stdio(false); */ ll a, b, c; cin >> a >> b >> c; if (a == 0) { if (b == 0) { if (c == 0) puts("-1"); else puts("0"); } else { puts("1"); long double bl = b; long double cl = c; cout << fixed << setprecision(20) << -cl / bl << endl; } } else { if(a<0){ a *= -1; b *= -1; c *= -1; } if (b*b - 4 * a*c > 0) { puts("2"); long double al = a; long double bl = b; long double cl = c; long double res1 = (-bl + sqrt(bl*bl - 4 * al*cl)) / (2 * al); long double res2 = (-bl - sqrt(bl*bl - 4 * al*cl)) / (2 * al); cout << fixed << setprecision(20) << res2 << "\n" << res1 << endl; } else if (b*b - 4 * a* c == 0) { puts("1"); long double res = -(long double)b / (long double)(2 * a); cout << fixed << setprecision(20) << res << endl; } else { puts("0"); } } return 0; }