#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
double a,b,c,d;
double ans[10];
int cnt;
int fb;
double fc(double x)
{
return a*x*x*x+b*x*x+c*x+d;
}
int main()
{
scanf("%lf%lf%lf%lf", &a, &b, &c, &d);
for(double i=-100, j=-99; i<=99; i+=1,j+=1)
{
double x1=fc(i), x2=fc(j);
if(x1==0)
{
ans[cnt++]=i;
if(cnt==3) break;
continue;
}
else if(x2==0)
{
ans[cnt++]=j;
if(cnt==3) break;
continue;
}
else if(x1*x2>0) continue;
else if(x1*x2<0)
{
int flag;
if(x1>0) flag=1; // 函数在这个区间内是下降的
else flag=0;
double l=i, r=j;
double mid;
while(r-l>=0.001)
{
mid=(l+r)/2;
int x3=fc(mid);
if(flag)
{
if(x3==0)
{
ans[cnt++]=mid;
if(cnt==3)
{
fb=1;
break;
}
}
else if(x3>0) l=mid;
else if(x3<0) r=mid;
}
else
{
if(x3==0)
{
ans[cnt++]=mid;
if(cnt==3)
{
fb=1;
break;
}
}
else if(x3>0) r=mid;
else if(x3<0) l=mid;
}
}
if(fb) break;
if(fc(l)==0)
{
ans[cnt++]=l;
if(cnt==3) break;
}
}
}
for(int i=0; i<3; i++) printf("%.2lf ", ans[i]);
return 0;
}