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: sq = sqrt(d) wt(2) wt((-b+sq)/(2*a)) wt((-b-sq)/(2*a)) elif d==0: wt(1) wt(-b/(2*a)) else: wt(0)