#include int ODSTR=0,ZOST=1; char e[251]; int z[125]; int pz; int preskocz(int p) { while (e[p]!=')') p++; return p; } int exist1(int p) { do { if ((e[p]=='+') || (e[p]=='-')) return 1; if (e[p]=='(') p=preskocz(p); p++; } while (e[p]!=')'); return 0; } int exist(int p) { do { if (e[p]=='+' || e[p]=='-' || (e[p]=='*') || e[p]=='/') return 1; if (e[p]=='(') p=preskocz(p); p++; } while (e[p]!=')'); return 0; } void rek(int pos) { do { switch (e[pos]) { case '(': z[pz++]=ODSTR; pos++; break; case ')': if (z[--pz]==ZOST) printf(")"); pos++; break; case '*': printf("%c",e[pos]); pos++; if (e[pos]=='(') { if (exist1(pos+1)) z[pz]=ZOST; else z[pz]=ODSTR; if (z[pz]==ZOST) printf("("); pz++; pos++; } break; case '-': printf("%c",e[pos]); pos++; if (e[pos]=='(') { if (exist1(pos+1)) z[pz]=ZOST; else z[pz]=ODSTR; if (z[pz]==ZOST) printf("("); pz++; pos++; } break; case '/': printf("%c",e[pos]); pos++; if (e[pos]=='(') { if (exist(pos+1)) z[pz]=ZOST; else z[pz]=ODSTR; if (z[pz]==ZOST) printf("("); pz++; pos++; } break; default: printf("%c",e[pos]); pos++; } } while (e[pos]!=0); } int main(void) { int n; scanf("%d\n",&n); while (n--) { gets(e); pz=0; rek(0); printf("\n"); } return 0; }