import sys from functools import lru_cache from bisect import bisect_left as lb, bisect_right as ub from collections import deque, defaultdict from heapq import heapify, heappop, heappush from math import gcd, ceil, sqrt rd = lambda: sys.stdin.readline() rdm = lambda: map(int, sys.stdin.readline().split()) rdl = lambda: list(map(int, sys.stdin.readline().split())) inf = 2 * 10 ** 18 sys.setrecursionlimit(10 ** 7) rg = range wt = print mk2d = lambda n,m: [[0]*m for i in range(n)] a,b,c=rdm() if a==0: if b==0: wt(-1 if c==0 else 0) else: wt(1) wt(-c/b) exit() d=b*b-4*a*c if d>0: from decimal import Decimal sq=Decimal(d).sqrt() wt(2) x = (-b+sq)/(2*a) y = (-b-sq)/(2*a) if x>y:x,y=y,x wt(x) wt(y) elif d==0: wt(1) wt(-b/(2*a)) else: wt(0)