{
TASK:crossing
LANG:Pascal
}
var
 w,s,a,b,p,t,mt:real;
 i:integer;
function pat(a:real;b:integer):real;
begin
 pat:=sqrt(a*a+b*b);
end;
begin
 readln(w,s,a,b);
 mt:=12000;
 for i:=1 to round(s/2) do begin
                            if(2*i<=s) then p:=pat(w/2,i);
                            p:=2*p;
                            t:=p/a;
                            p:=s-2*i;
                            t:=t+p/b;
                            if(t<mt)and(t<>0) then mt:=t;
                           end;
 write(mt:0:0,':');
 mt:=mt*100;
 while mt>100 do mt:=mt-100;
 if mt*60/100<>60 then write(mt*60/100:0:0,':')
                  else write('0:');
 mt:=mt*100;
 while mt>100 do mt:=mt-100;
 if mt*60/100<>60 then write(mt*60/100:0:0)
                  else write('0');
 writeln;
end.