
import java.util.*;
import java.io.*;
import java.math.BigInteger;
import java.util.regex.Pattern;
import javafx.util.Pair;
import sun.util.locale.StringTokenIterator;

public class Foh {

    static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
    static StringBuilder out = new StringBuilder();
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    static PrintWriter pw = new PrintWriter(new OutputStreamWriter(System.out));

    static int I(String s) {
        return Integer.parseInt(s);
    }

    static long L(String s) {
        return Long.parseLong(s);
    }

    static double D(String s) {
        return Double.parseDouble(s);
    }

    static String[] SA() throws IOException {
        return bf.readLine().split(" ");
    }

    public static void main(String[] args) throws IOException {

 
        StringTokenizer in = new StringTokenizer(bf.readLine());
        long a = I(in.nextToken());
        long b = I(in.nextToken());
        long c = I(in.nextToken());
        if (a == 0 && b == 0) {
            System.out.println("-1");
        } else if (a == 0 && b != 0) 
        {
            System.out.println("1");
                System.out.printf("%.5f%n", ((-c * 1.0) /( b * 1.0)));
        } else if (b == 0 && a != 0) {

            if ((a<0&&b>=0)||(b>=0&&a<0)) {
                System.out.println("1");
                System.out.printf("%.5f%n", Math.sqrt((-c * 1.0) / (a * 1.0)));
            } else {
                System.out.println("0");
            }
        } else {

            if ((b * b) - (4 * a * c) < 0) {
                System.out.println(0);
            } else if ((b * b) - (4 * a * c) == 0) {
                System.out.println("1");
                System.out.printf("%.5f%n", ((-b * 1.0) / (2 * a * 1.0)));
            } else {

                //     System.out.println((((-b*1.0)+(double)Math.sqrt((b*1.0*b*1.0)-(4.0*a*1.0*c*1.0)))));
                //    System.out.println((((-b*1.0)+Math.sqrt((b*1.0*b*1.0)-(4.0*a*1.0*c*1.0)))/(2.0*a)));
                double max = Math.max(((((-b) * 1.0) + Math.sqrt((b * 1.0 * b * 1.0) - (4.0 * a * 1.0 * c * 1.0))) / (2.0 * a)), (((-b) - Math.sqrt((b * 1.0 * b * 1.0) - (4.0 * a * 1.0 * c * 1.0))) / (2.0 * a)));
                double min = Math.min(((((-b) * 1.0) + Math.sqrt((b * 1.0 * b * 1.0) - (4.0 * a * 1.0 * c * 1.0))) / (2.0 * a)), (((-b) - Math.sqrt((b * 1.0 * b * 1.0) - (4.0 * a * 1.0 * c * 1.0))) / (2.0 * a)));
           
                if((min<0&&max<0)||(min>0&&max>0)){System.out.println("2\n");
                System.out.printf("%.5f%n", (min));

                System.out.printf("%.5f%n", (max));
            }
                else {
                System.out.println("4\n");
                ArrayList al=new ArrayList();
                al.add(min);
                al.add(max);
                al.add(-min);
                al.add(-max);
                Collections.sort(al);
                for(int i=0;i<4;i++){System.out.printf("%.5f%n", al.get(i));}
              
                
                }
            }
        }
    }
   
}

