var q1gen,q2gen,maxq,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);
x:=k div 2+1;
y:=k mod 2;
i:=0;
ok:=true;
if a<0 then n:=a
else n:=-a;
j:=n;
while (i<x)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 write(g,divi,'x');
if divi*q1gen>divi*q2gen then
begin
minq:=divi*q2gen;
maxq:=n div divi*q1gen;
end
else
begin
minq:=divi*q1gen;
maxq:=n div divi*q2gen;
end;
if minq<0 then write(g,minq,')(')
else write(g,'+',minq,')(');
if n div divi=-1 then write(g,'-x')
else write(g,n 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 write(g,divi,'x');
if divi*q2gen>divi*q1gen then
begin
maxq:=divi*q2gen;
minq:=n div divi * q1gen;
end
else
begin
maxq:=divi*q1gen;
minq:=n div divi * q2gen;
end;
if maxq<0 then write(g,maxq,')(')
else write(g,'+',maxq,')(');
if n div divi=-1 then write(g,'-x')
else write(g,n 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.