import java.util.Arrays;
import java.util.Scanner;


public class R020B {
    public void debug(Object... objects) { System.err.println(Arrays.deepToString(objects)); }
    
    int a, b, c;
    
    public R020B() {
        Scanner scanner = new Scanner(System.in);
        this.a = scanner.nextInt();
        this.b = scanner.nextInt();
        this.c = scanner.nextInt();
    }
    
    private String format(String str) {
        int pos = str.indexOf(".");
        if(pos == -1) { str += ".00000"; }
        else {
            int len = str.substring(pos+1).length();
            while(len < 5) {
                str += "0";
                len++;
            }
        }
        return str;
    }
    
    private void process() {
        if(a ==0 && b ==0) { 
            if(c == 0) { System.out.println(-1); }
            else System.out.println(0);
        } else if (a == 0) {
            System.out.println(1);
            System.out.println(format(String.valueOf(-c * 1.0 / b)));
        } else {
            double[] ans = new double[2];
            ans[0] = (-b + Math.sqrt(b*b - 4*a*c)) / (2*a);
            ans[1] = (-b - Math.sqrt(b*b - 4*a*c)) / (2*a);
            if(Double.isNaN(ans[0]) || Double.isNaN(ans[0])) {
                System.out.println(0); return;
            } else if (Double.isInfinite(ans[0]) || Double.isInfinite(ans[1])) {
                System.out.println(0); return;
            }
            Arrays.sort(ans);
            System.out.println(2);
            String[] str = new String[2];
            str[0] = format(String.valueOf(ans[0]));
            str[1] = format(String.valueOf(ans[1]));
            System.out.println(str[0]);
            System.out.println(str[1]);
        }
    }
    
    public static void main(String[] args) { new R020B().process(); }
}
