#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long int
#define pii 3.14
#define mod (ll)(1e9 + 7)
#define inf (ll)(1e18)
#define fio ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ordered_set tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update>
#define pi pair<int,int>
#define N (ll)(1e6+5)

void solve()
{
    double a,b,c;
    cin>>a>>b>>c;

    if(a==0 && b==0 && c==0)
    {
        cout<<"-1";
        return;
    }

    if(a==0 && b==0)
    {
        cout<<"0";
        return;
    }

    if(a == 0 && b!=0)
    {
        double r = (-1*c)/b;
        cout<<"1\n";
        cout<<r;
        return;
    }

    if(a!=0 && b==0 && c==0)
    {
        cout<<"1\n0";
        return;
    }

    if(b*b < 4*a*c)
    {
        cout<<"0";
        return;
    }

    double det = sqrt((b*b)-(4*a*c));
    double r1 = (-1*b + det);
    double r2 = (-1*b - det);

    r1 /= 2*a;
    r2 /= 2*a;

    if(r1 == r2)
    {
        cout<<"1\n";
        cout<<fixed<<setprecision(9)<<r1;
        return;
    }

    cout<<"2\n";

    if(r1 < r2)
        cout<<fixed<<setprecision(9)<<r1<<"\n"<<r2;
    else
        cout<<fixed<<setprecision(9)<<r2<<"\n"<<r1;
}

int main()
{
    fio;
    ll t = 1;
   // cin>>t;
    while(t--)
    {
        solve();
    }
}
