a, b, c = map(int, input().split())
xmin, xmax = -int(1e9), int(1e9)
def f(x):
    return x**3 + a*x**2 + b*x + c
def dfdx(x):
    return 3*x**2 + 2*a*x + b
    
x0, x1 = 0, 0
if a % 3 == 0:
    x0 = -(a // 3)
    x1 = -(a // 3)
else:
    x0 = -(a // 3)
    x1 = -(a // 3) + 1
l, r = xmin, x0
d = (l + r) // 2
L, R = x1, xmax
D = (L + R) // 2
for i in range(100):
    if dfdx(d) >= 0:
        l = d
        d = (l + r) // 2
    else:
        r = d
        d = (l + r) // 2
    if dfdx(D) <= 0:
        L = D
        D = (L + R) // 2
    else:
        R = D
        D = (L + R) // 2
l1, r1 = xmin, d
d1 = (l1 + r1) // 2
l2, r2 = d+(dfdx(d)!=0), D
d2 = (l2 + r2) // 2
l3, r3 = D+(dfdx(D)!=0), xmax
d3 = (l3 + r3) // 2
for i in range(100):
    if f(d1) < 0:
        l1 = d1 + 1
        d1 = (l1 + r1) // 2
    else:
        if f(d1) == 0:
            break
        r1 = d1
        d1 = (l1 + r1) // 2
for i in range(100):
    if f(d2) >= 0:
        if f(d2) == 0:
            break
        l2 = d2
        d2 = (l2 + r2) // 2
    else:
        r2 = d2
        d2 = (l2 + r2) // 2
for i in range(100):
    if f(d3) < 0:
        l3 = d3 + 1
        d3 = (l3 + r3) // 2
    else:
        if f(d3) == 0:
            break
        r3 = d3
        d3 = (l3 + r3) // 2
print(d1, d2, d3)