# coding: utf-8 import cmath from cmath import log, sqrt def II(): return int(input()) def ILI(): return list(map(int, input().split())) def IAI(LINE): return [ILI() for __ in range(LINE)] def IDI(): return {key: value for key, value in ILI()} def read(): A, B, C = ILI() return A, B, C def cbrt(x): if x.imag != 0: return cmath.exp(log(x) / 3) else: if x < 0: d = (-x) ** (1 / 3) return -d elif x >= 0: return x ** (1 / 3) def cubic(a, b, c, d): D = (18 * a * b * c * d) - (4 * (b ** 3) * d) + ((b ** 2) * (c ** 2)) - \ (4 * a * (c ** 3)) - (27 * (a ** 2) * d ** 2) D0 = (b ** 2) - (3 * a * c) i = 1j if D == 0 and D0 == 0: return -(b / (3 * a)) elif D == 0 and D0 != 0: return [((b * c) - (9 * a * d)) / (-2 * D0), ((b ** 3) - (4 * a * b * c) + (9 * (a ** 2) * d)) / (-a * D0)] else: D1 = (2 * (b ** 3)) - (9 * a * b * c) + (27 * (a ** 2) * d) if D != 0 and D0 == 0 and D1 < 0: C = cbrt((D1 - sqrt((D1 ** 2) - (4 * (D0 ** 3)))) / 2) else: C = cbrt((D1 + sqrt((D1 ** 2) - (4 * (D0 ** 3)))) / 2) u_2 = (-1 + (i * sqrt(3))) / 2 u_3 = (-1 - (i * sqrt(3))) / 2 x_1 = (-(b + C + (D0 / C))) / (3 * a) x_2 = (-(b + (u_2 * C) + (D0 / (u_2 * C)))) / (3 * a) x_3 = (-(b + (u_3 * C) + (D0 / (u_3 * C)))) / (3 * a) if D > 0: return [x_1, x_2, x_3] else: return x_1 def solve(A, B, C): comp_ans = cubic(1, A, B, C) try: l_ans = [] for c in comp_ans: l_ans.append(int(c.real)) ans = " ".join(map(str, sorted(l_ans))) except: ans = "{} {} {}".format(int(comp_ans), int(comp_ans), int(comp_ans)) return ans def main(): params = read() print(solve(*params)) if __name__ == "__main__": main()