#include
#include<stdio.h>
#include<string.h>
#include
using namespace std;
int main()
{
int a[10000][253],b[10000][253];
int count1=0,i=0,flag=0,flag1=0,c[10000][2],k=0;
long int test,w;
int count2;
char s[10000][253];
char value='\0';
scanf("%ld",&test);
stack <pair<int,char> >s1;
for(int w=0;w<test;w++)
{
i=0;
scanf("%s",&s[w]);
long int len=strlen(s[w]);
s[w][len]='\0';
while(i<len)
{
a[w][i]=-1;
b[w][i]=0;
i++;
}
}
i=0;
w=0;
k=0;
value=’\0’;
for( w=0;w<test;w++)
{
while(s[w][i]!=’\0’)
{
// printf("\nyes");
if(s[w][i]==’(’)
{
s1.push(make_pair(count1,s[w][i]));
count2=count1;
count1=count1+1;
if(i>0 && (s[w][i-1]==’+’ || s[w][i-1]==’-’ || s[w][i-1]==’/’ || s[w][i-1]==’’))
value=s[w][i-1];
i++;
while(1)
{
if(s[w][i]==’)’)
break;
if(s[w][i]==’(’)
break;
// printf("\nyes12");
if(s[w][i]==’+’ || s[w][i]==’-’ || s[w][i]==’/’ || s[w][i]==’’)
{
// printf("\nyes13:%c",value);
if(value=='-' && (s[w][i]=='+' || s[w][i]=='-'))
{
//printf("\nyes1");
s1.push(make_pair(count2,s[w][i]));
a[w][count2]=1;
//printf("\nc[%d][%d]:%d",k-1,1,c[k-1][1]);
i++;
}
else if(value=='/' && s[w][i]=='/')
{
// printf("\nyes2");
s1.push(make_pair(count2,s[w][i]));
a[w][count2]=1;
// printf("\nc[%d][%d]:%d",k-1,1,c[k-1][1]);
i++;
}
else if(value=='*' && (s[w][i]=='+' || s[w][i]=='-'))
{
// printf("\nyes3");
s1.push(make_pair(count2,s[w][i]));
a[w][count2]=1;
//printf("\nc[%d][%d]:%d",k-1,1,c[k-1][1]);
i++;
}
else if(value=='/' && (s[w][i]=='+' || s[w][i]=='-'))
{
// printf("\nyes4");
s1.push(make_pair(count2,s[w][i]));
a[w][count2]=1;
//printf("\nc[%d][%d]:%d",k-1,1,c[k-1][1]);
i++;
}
else
{
s1.push(make_pair(count2,s[w][i]));
i++;
}
}
else
i++;
}
}
else if(s[w][i]==’)’)
{
i++;
// printf("\nyes5");
if(s[w][i]==’+’ || s[w][i]==’-’ || s[w][i]==’/’ || s[w][i]==’’)
{
value=s[w][i];
pair<int,char>new1=s1.top();
if(value==’/’ && new1.second==’/’)
{
if(k>0)
a[w][new1.first]=1;
flag=1;
// k–;
s1.pop();
}//(ab*(c/d)e+(k+fj)*(l+m)hi)*z
new1=s1.top();
if(new1.first=='(')
s1.pop();
while((new1.second)!='(')
{
if(value=='*' && (new1.second=='+' || new1.second=='-'))
{
a[w][new1.first]=1;
flag=1;
}
else if(value=='/' && (new1.second=='+' || new1.second=='-') )
{
a[w][new1.first]=1;
flag=1;
}
s1.pop();
new1=s1.top();
if((new1.second)=='(')
s1.pop();
// k--;
}
if(!s1.empty())
{
while(s[w][i]!='(')
{
new1=s1.top();
if(s[w][i]=='+' || s[w][i]=='-' || s[w][i]=='/' || s[w][i]=='*')
{
s1.push(make_pair(new1.first,s[w][i]));
}
i++;
if(s[w][i]==')')
break;
}
}
// i++;
}
}
else
i++;
}
count1=count2=0;
int j=0;
i=0;
k=0;
printf("\n");
while(s[w][i]!=’\0’)
{
// printf("\nyes2");
if(s[w][i]=='(')
{
b[w][j++]=count1;
if(a[w][count1]==-1)
{
}
else
printf("(");
// out[w][i]='(';
count1=count1+1;
// flag=1;
}
else if(s[w][i]==')')
{
//printf("\nj=%d%c%d",j,s[w][i], a[w][b[w][j-1]]);
if((j-1>=0) && a[w][b[w][j-1]]==-1)
{
//a[count1]=-2;
}
else if((j-1)>=0)
printf(")");
j--;
}
else
printf("%c",s[w][i]);
//out[w][i]=s[w][i];
i++;
}
// int len1=strlen(out[w]);
// out[w][len1]=’\0’;
value=’\0’;
count1=i=0;
k=0;
if(!(s1.empty()))
{
while(!(s1.empty()))
s1.pop();
}
}
}