#include<stdio.h>
#include<string.h>
#include <iostream>
using namespace std;
char f[201][201];
char tree[410];
int rom,top;
void dfs(int deep,int left,int right){
if(deep > rom)
return;
for(int i=left;i<=right;i++){
if(i<strlen(f[deep])&&f[deep][i]!=' '&&f[deep][i]!='|'&&f[deep][i]!='-'&&f[deep][i]!='#'){
tree[top++] = f[deep][i];
tree[top++] = '(';
if(f[deep+1][i]=='|'){
int l,r;
l = r = i;
while(f[deep+2][l]=='-') l--;
while(f[deep+2][r]=='-') r++;
dfs(deep+3,l+1,r-1);
}
tree[top++] = ')';
}
}
}
void read(){
memset(f,' ',sizeof(f));
rom = 0;
while(gets(f[rom])){
if(f[rom][0]=='#') break;
++rom;
}
}
int main(){
int T;
scanf("%d",&T);
getchar();
while(T--){
read();
top = 0;
tree[top++] ='(';
dfs(0,0,(int)strlen(f[0])-1);
tree[top++] = ')';
for(int i=0;i<top;i++)
printf("%c",tree[i]);
printf("\n");
}
return 0;
}