# 割り切れる割り算、上の桁から。 def poly_div(X,Y): ANS=[0]*(len(X)-len(Y)+1) for i in range(len(X)-len(Y)+1): if X[i]%Y[0]!=0: return False ANS[i]=X[i]//Y[0] for j in range(len(Y)): X[j+i]-=ANS[i]*Y[j] return ANS # 掛け算 def poly_mul(X,Y): ANS=[0]*(len(X)+len(Y)-1) for i in range(len(X)): for j in range(len(Y)): ANS[i+j]+=X[i]*Y[j] return ANS A,B,C=map(int,input().split()) for i in range(-10**7,10**7): ANS=poly_div([1,A,B,C],[1,-i]) if ANS!=False: a,b,c=ANS if b*b-4*c<0: continue k=(-b+(b*b-4*c)**(1/2))/2 l=(-b-(b*b-4*c)**(1/2))/2 if abs(k-round(k))<0.00000000000001 and abs(l-round(l))<0.00000000000001: L=[i,round(k),round(l)] L.sort() XX=poly_mul(poly_mul([1,-i],[1,-round(k)]),[1,-round(l)]) if XX[1:]==[A,B,C]: print(*L) exit()