#include <bits/stdc++.h>
using namespace std;
double a, b, c, d;
struct node
{
double x;
double y;
} k[20005];
bool cmp1(node a, node b)
{
if (a.y == b.y)
a.x < b.x;
return a.y < b.y;
}
bool cmp2(node a, node b)
{
return a.x < b.x;
}
double gety(double x)
{
return a * pow(x, 3) + b * pow(x, 2) + c * x + d;
}
int main()
{
cin >> a >> b >> c >> d;
for (int i = -10000; i <= 10000; i++)
{
double x = i / 100.0;
k[i + 10000].x = x;
k[i + 10000].y = abs(0 - gety(x));
}
sort(k, k + 20000, cmp1);
sort(k, k + 3, cmp2);
printf("%.2lf %.2lf %.2lf", k[0].x, k[1].x, k[2].x);
return 0;
}