var q1gen,q2gen,maxq,w,minq,n,a,b,c,k,divi,i,j,x,y:longint;
f,g:text;
ok:boolean;
begin
assign(f,'ecuatie.in'); reset(f);
assign(g,'ecuatie.out'); rewrite(g);
readln(f,a,b,c,k);
q1gen:=-trunc((-b+trunc(sqrt(b*b-4*a*c)))/(2*a));
q2gen:=-trunc((-b-trunc(sqrt(b*b-4*a*c)))/(2*a));
if q1gen+q2gen<>-b/(2*a) then
begin
q1gen:=-q1gen;
q2gen:=-q2gen;
end;
x:=k div 2;
y:=k mod 2;
i:=0;
ok:=true;
if a<0 then n:=a
else n:=-a;
j:=n;
while (i<x+y)and(ok) do
begin
if j<>0 then
if n mod j = 0 then
begin
inc(i);
divi:=j;
end;
inc(j);
if j>abs(n) then ok:=false;
end;
if ok then
begin
if y=1 then
begin
write(g,'(');
if divi=-1 then write(g,'-x')
else
if divi=1 then write(g,'x')
else write(g,divi,'x');
if divi*q1gen>divi*q2gen then
begin
minq:=divi*q2gen;
maxq:=a div divi*q1gen;
end
else
begin
minq:=divi*q1gen;
maxq:=a div divi*q2gen;
end;
if minq<0 then write(g,minq,')(')
else write(g,'+',minq,')(');
if a div divi=-1 then write(g,'-x')
else write(g,a div divi,'x');
if maxq<0 then write(g,maxq,')')
else write(g,'+',maxq,')');
writeln(g);
end;
if y=0 then
begin
write(g,'(');
if divi=-1 then write(g,'-x')
else
if divi=1 then write(g,'x')
else write(g,divi,'x');
if divi*q2gen>divi*q1gen then
begin
maxq:=divi*q2gen;
minq:=a div divi * q1gen;
end
else
begin
maxq:=divi*q1gen;
minq:=a div divi * q2gen;
end;
if maxq<0 then write(g,maxq,')(')
else write(g,'+',maxq,')(');
if a div divi=-1 then write(g,'-x')
else write(g,a div divi,'x');
if minq<0 then write(g,minq,')')
else write(g,'+',minq,')');
writeln(g);
end;
end
else writeln(g,-1);
close(g);
end.