program
  expr;
  
var
  n:integer;
  v,p:string[255];

procedure
  simplify;
var
  x,zac,kon,leng,vyrcnt:integer;
  muldivonly,odstran:boolean;
begin
  leng:=length(v);
  p:='';
  x:=0;
  while x<leng do begin
    inc(x);
    if (v[x]>='a') and (v[x]<='z') then begin
      p:=p+#1;
    end else begin
      p:=p+#255;
    end;
  end;

  repeat
    zac:=-1;
    x:=1;
    while x<=leng do begin
      if (v[x]=')') and (p[x]=#255) then begin
        break;
      end;
      if (v[x]='(') and (p[x]=#255) then begin
        zac:=x;
      end;
      inc(x,1);
    end;
    if zac<>-1 then begin
      {nasiel zatvorku}
      kon:=x;
      {preskuma ju}
      vyrcnt:=1;
      muldivonly:=true;
      x:=zac+1;
      inc(x,integer(ord(p[x])));
      while x<kon do begin
        inc(vyrcnt,1);
        if (v[x]<>'*') and (v[x]<>'/') and (v[x]<>')') then begin
          muldivonly:=false;
        end;
        inc(x,integer(ord(p[x])));
      end;
      odstran:=false;
      {1.pravidlo}
      if vyrcnt=1 then begin
        odstran:=true;
      end else begin
        {2.pravidlo}
        if ((zac-1<1) or (v[zac-1]='+') or (v[zac-1]='(')) and ((kon+1>leng) or (v[kon+1]='+') or (v[kon+1]='-') or (v[kon+1]=')')) then begin
          odstran:=true;
        end else begin
          {3.pravidlo}
          if (muldivonly) and ((zac-1<1) or (v[zac-1]='-') or (v[zac-1]='*') or (v[zac-1]='(')) then begin
            odstran:=true;
          end;
        end;
      end;
      if odstran then begin
        delete(v,kon,1);
        delete(p,kon,1);
        delete(v,zac,1);
        delete(p,zac,1);
        dec(leng,2);
      end else begin
        p[zac]:=chr(kon-zac+1);
        p[kon]:=#254;
      end;
    end;  
  until zac=-1;
end;

begin
  readln(n);
  while n>0 do begin
    readln(v);
    simplify;
    writeln(v);    
    dec(n);
  end;
end.