program Expr;

type
    PExpr = ^TExpr;
    TExpr = record
        op: Char;
        l, r: PExpr;
    end;

var
    s: string;
    pos: Integer;
    c: Char;
    expr: PExpr;
    
procedure Test;
begin
    Inc(pos);
    c := s[pos];
end;

function Wyr: PExpr; forward;

function Czynnik: PExpr;
var
    r: PExpr;
begin
    if c = '(' then
    begin
	Test;
	Czynnik := Wyr;
	Test;
    end else
    begin
        New(r);
	r^.op := c;
	Test;
	Czynnik := r;
    end;
end;

function Skladnik: PExpr;
var
    r, p: PExpr;
begin
    r := Czynnik;
    while c in ['*', '/'] do
    begin
        New(p);
	p^.l := r;
	p^.op := c;
	Test;
	p^.r := Czynnik;
	r := p;
    end;
    Skladnik := r;
end;

function Wyr: PExpr;
var
    r, p: PExpr;
begin
    r := Skladnik;
    while c in ['+', '-'] do
    begin
        New(p);
	p^.l := r;
	p^.op := c;
	Test;
	p^.r := Skladnik;
	r := p;
    end;
    Wyr := r;
end;

procedure Wypisz(var e: TExpr; prior: Integer);
var
    rp, left, right: Integer;
begin
    if e.op in ['a'..'z'] then
    begin
	Write(e.op);
	Exit;
    end;
    rp := 0;
    if e.op in ['*', '/'] then
	rp := 1;
    if prior > rp then Write('(');
    left := 0;
    right := 0;
    if e.op = '-' then right := 1;
    if e.op = '*' then
    begin
        left := 1;
	right := 1;
    end;
    if e.op = '/' then
    begin
	left := 1;
	right := 2;
    end;
    Wypisz(e.l^, left);
    Write(e.op);
    Wypisz(e.r^, right);
    if prior > rp then Write(')');
end;

var
    t: Integer;
    
begin
    Readln(t);
    while t > 0 do
    begin
	Readln(s);
	s := s + ';';
	pos := 0;
	Test;
	expr := Wyr;
	Wypisz(expr^, 0);
	Writeln;
	Dec(t);
    end;
end.{ begin end.}