package main
import (
"math"
"fmt"
"bytes"
"os"
"io/ioutil"
)
func main() {
bs, _ := ioutil.ReadAll(os.Stdin)
reader := bytes.NewBuffer(bs)
var a, b, c int64
fmt.Fscanf(reader, "%d %d %d", &a, &b, &c)
delta := b * b - 4 * a * c
if a == 0 && b == 0 && c == 0 {
fmt.Printf("-1")
} else if a == 0 && b == 0 {
fmt.Printf("0")
} else if a == 0 {
fmt.Printf("1\n%f", float64(-c)/float64(b))
} else if delta < 0 {
fmt.Printf("0")
} else if delta == 0 {
fmt.Printf("1\n%f", float64(-b)/float64(2 * a))
} else if delta > 0 {
x1 := (float64(-b) + math.Sqrt(float64(delta))) / float64(2 * a)
x2 := (float64(-b) - math.Sqrt(float64(delta))) / float64(2 * a)
if x1 < x2 {
fmt.Printf("2\n%f\n%f", x1, x2)
} else {
fmt.Printf("2\n%f\n%f", x2, x1)
}
}
}
cGFja2FnZSBtYWluCiAKaW1wb3J0ICgKCSJtYXRoIgoJImZtdCIKCSJieXRlcyIKCSJvcyIKCSJpby9pb3V0aWwiCikKIApmdW5jIG1haW4oKSB7CglicywgXyA6PSBpb3V0aWwuUmVhZEFsbChvcy5TdGRpbikKCXJlYWRlciA6PSBieXRlcy5OZXdCdWZmZXIoYnMpCgl2YXIgYSwgYiwgYyBpbnQ2NAoJZm10LkZzY2FuZihyZWFkZXIsICIlZCAlZCAlZCIsICZhLCAmYiwgJmMpCglkZWx0YSA6PSBiICogYiAtIDQgKiBhICogYwoJaWYgYSA9PSAwICYmIGIgPT0gMCAmJiBjID09IDAgewoJCWZtdC5QcmludGYoIi0xIikKCX0gZWxzZSBpZiBhID09IDAgJiYgYiA9PSAwIHsKCQlmbXQuUHJpbnRmKCIwIikKCX0gZWxzZSBpZiBhID09IDAgewoJCWZtdC5QcmludGYoIjFcbiVmIiwgZmxvYXQ2NCgtYykvZmxvYXQ2NChiKSkKCX0gZWxzZSBpZiBkZWx0YSA8IDAgewoJCWZtdC5QcmludGYoIjAiKQoJfSBlbHNlIGlmIGRlbHRhID09IDAgewoJCWZtdC5QcmludGYoIjFcbiVmIiwgZmxvYXQ2NCgtYikvZmxvYXQ2NCgyICogYSkpCgl9IGVsc2UgaWYgZGVsdGEgPiAwIHsKCQl4MSA6PSAoZmxvYXQ2NCgtYikgKyBtYXRoLlNxcnQoZmxvYXQ2NChkZWx0YSkpKSAvIGZsb2F0NjQoMiAqIGEpCgkJeDIgOj0gKGZsb2F0NjQoLWIpIC0gbWF0aC5TcXJ0KGZsb2F0NjQoZGVsdGEpKSkgLyBmbG9hdDY0KDIgKiBhKQoJCWlmIHgxIDwgeDIgewoJCQlmbXQuUHJpbnRmKCIyXG4lZlxuJWYiLCB4MSwgeDIpCgkJfSBlbHNlIHsKCQkJZm10LlByaW50ZigiMlxuJWZcbiVmIiwgeDIsIHgxKQoJCX0KCX0KfQ==