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
****************************************************************/