var a,b,c,i,j,x1,x2,m,n:longint;
    s1,s2:string;
function t(a,b:longint):longint;
var j:longint;
begin
  repeat
  j:=a;
  a:=b;
  a:=a mod j;
  b:=j;
  until a=0;
  t:=j;
end;
begin
while not(eof)do begin
  readln(a,b,c);
  s1:='x-';s2:='x-';
  if (sqr(b)-4*a*c<0)or(sqrt(sqr(b)-4*a*c)
  <>trunc(sqrt(sqr(b)-4*a*c)))then begin
    writeln('No');
     readln;
    halt;
  end else begin
    x1:=trunc(-b+sqrt(sqr(b)-4*a*c));
    x2:=trunc(-b-sqrt(sqr(b)-4*a*c));
    i:=abs(2*a) div t(abs(x1),abs(2*a));
    j:=abs(2*a) div t(abs(x2),abs(2*a));
   if (a/i/j=trunc(a/i/j))and(a/j=trunc(a/j))and(a/i=trunc(a/i))then begin
    if a div j<0 then n:=-1 else n:=1;
     if a div i div j*(x1 div t(abs(x1),abs(2*a)))<0 then m:=-1 else m:=1;
      if n*m=-1 then s1[2]:='+' else s1[2]:='-';
     if x2/2/a<0 then s2[2]:='+';
      write('(');
      if a div j<>1 then write(a div j);
      write(s1,abs(a div i div j*(x1 div t(abs(x1),abs(2*a)))),')(');
      if j<>1 then write(j);
      write(s2,abs(x2 div t(abs(x2),abs(2*a))),')');
      writeln;
      end else writeln('No');
    end;
  end;
end.