import java.util.Scanner;
public class Main {
static double m[] = new double[3];
static int n=0;
static boolean f(int a, int b, int c, int d) {
for(double i=-100;i<=100;i++) {
if(a*i*i*i+b*i*i+c*i+d==0) {
m[n]=i;
n++;
}
}
if(Math.abs(m[0]-m[1])>=1 && Math.abs(m[0]-m[2])>=1 && Math.abs(m[1]-m[2])>=1) {
return true;
} else return false;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
if(f(a,b,c,d)) {
System.out.printf("%.2f ",m[0]);
System.out.printf("%.2f ",m[1]);
System.out.printf("%.2f ",m[2]);
}
sc.close();
}
}
/**************************************************************
Problem: 1692
User: admin
Language: Java
Result: Accepted
Time:410 ms
Memory:40292 kb
****************************************************************/