def solve(): b,c,d = map(int, input().split()) a = 1 p = (3*a*c - (b**2)) / (3*(a**2)) q = (27*(a**2)*d + 2*(b**3) - 9*a*b*c) / (27 * (a**3)) u = ((-q/2) + (((q/2)**2 + (p/3)**3)**(1/2)))**(1/3) v = ((-q/2) - (((q/2)**2 + (p/3)**3)**(1/2)))**(1/3) w1 = (-1 + complex(3**0.5, 1)) / 2 w2 = (-1 - complex(3**0.5, 1)) / 2 x1 = u+v-(b/3*a) x2 = w1*u + w2*v -(b / 3 / a) x3 = w2*u + w1*v -(b / 3 / a) ans = list(sorted([round(x1.real), round(x2.real), round(x3.real)])) for i in range(-1, 2): y1 = ans[0] + i if ((y1**3) + b*(y1**2) + c*(y1) + d) != 0: continue for j in range(-1, 2): y2 = ans[1] + j if y2 <= y1: continue if ((y2**3) + b*(y2**2) + c*(y2) + d) != 0: continue for k in range(-1, 2): y3 = ans[2] + k if y3 <= y2: continue if ((y3**3) + b*(y3**2) + c*(y3) + d) != 0: continue print(y1, y2, y3) return solve()