semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int n;
	scanf("%d",&n);
	char a[102];
	int i,j,L,k;
	int b[102]={0};
	for(k=0;k<n;k++)
	{
		for(i=0;i<102;i++)
		{
			a[i]=0;
			b[i]=0;
		}
		scanf("%s",a);
		printf("%s\n",a);
	L=strlen(a);
		for(i=L-1;i>=0;i--)
		{
			if(a[i]=='(')
			{
				for(j=i+1;j<L;j++)
				{
					if(a[j]==')')
					
					{
						a[i]=0;
						a[j]=0;
						break;
					}
                }
	        if(j==L) b[i]=1;
			}
		}
	
		for(i=0;i<L;i++)
		{
			if(a[i]==')')
			 b[i]=2;
                
		}
		for(i=0;i<L;i++)
		{
			if(b[i]==1) printf("$");
			else if(b[i]==2) printf("?");
			else printf(" ");
		}
printf("\n");
	}
		return 0;
}
int main()
{
	char ch[200],temp[200];
	int n,i,figure,tempnum[200];
	scanf("%d\n",&n);
	while(gets(ch))
	{
		figure=0;
		for(i=0;ch[i]!='\0';i++)
		{
			temp[i]=' ';
			switch(ch[i])
			{
			case '(':tempnum[figure++]=i;temp[i]='$';break;
			case ')':
				if(figure>0)
				{
					figure--;temp[tempnum[figure]]=' ';
				}
				else temp[i]='?';break;
			}
		}
		temp[i]='\0';
		printf("%s\n%s\n",ch,temp);
	}
}
int main()
{
int n,i,j,m=0,x,y;
scanf("%d",&n);
char a[100][1000];
for(i=0;i<n+1;i++)
 gets(a[i]);
for(i=0;i<n+1;i++)
  {for(j=0;a[i][j]!='\0';j++)
     printf("%c",a[i][j]);
     printf("\n");
     x=j;
   for(j=0;j<x;j++)
    {if(a[i][j]==')')
      {if(j==0)a[i][j]='?';
       for(m=1;j-m>=0;m++)
         if(a[i][j-m]=='('){a[i][j-m]=' ';a[i][j]=' ';break;}
         else a[i][j]='?';}
     if(a[i][j]!='('&&a[i][j]!=')'&&a[i][j]!='?')a[i][j]=' ';}
   for(j=x-1;j>=0;j--)
      if(a[i][j]=='(')
         {if(j==x-1)a[i][j]='$';
          else for(m=1;j+m<x;m++)
            if(a[i][j+m]==')'){a[i][j]=' ';a[i][j+m]=' ';break;}
             else a[i][j]='$';}
     for(j=0;j<x;j++)
       printf("%c",a[i][j]);
     printf("\n");
  }
  return 0;
}
int main()
{
	char line[101], mark[101];
	int locate[101], left = 0, right = 0, count = -1, len, i;
	while(cin.getline(line,101))
	{
		count = -1;
		left = 0;
		right = 0;
		len = strlen(line);
		memset(mark, ' ', sizeof(mark));
		memset(locate, 0, sizeof(locate));
		for(i = 0 ; line[i] != '\0' ; i++)
		{
			
			if(line[i] == '(')
			{
				left++;
				locate[++count] = i;
			}
			if(line[i] == ')')
			{
				if(left <= right)
				{
					mark[i] = '?';
				}
				else
				{
					right++;
					count--;
				}
			}
		}
		if(count >= 0)
		{
			for(i = 0 ; i <= count ; i++)
			{
				mark[locate[i]] = '$';
			}
		}
			mark[len] = '\0';
			cout << line << endl;
			cout << mark << endl;
		
		
	}
		return 0;
	}
int main(){
	char s[160],ans[160];
	int st[160],i,si;
	for (;scanf("%s",s)!=EOF;){
		for (ans[0]=' ',si=i=0;i<strlen(s);si-=(s[i]==')'&&si>0),ans[++i]=' ')
			if (s[i]=='(') st[si++]=i;
			else if (s[i]==')')	ans[i]=(si>0)?' ':'?';			
		for (ans[strlen(s)]='\0',i=0;i<si;i++) ans[st[i]]='$';
		printf("%s\n%s\n",s,ans);
	}
}
char s[999];
int find(int i,int l)
{
	int t;
	if(s[i]=='\0') return -1;
	if(s[i]=='(')
	{
		t=find(i+1,l+1);
		if(t==-1) s[i]='$';
		else s[i]=' ';
		if(t==-1) return -1;
		else return find(t+1,l);
	}
	if(s[i]==')')
	{
		if(l==0) s[i]='?';
		else s[i]=' ';
		if(l==0) return find(i+1,0);
		else return i;
	}
	s[i]=' ';
	return find(i+1,l);
}
int main()
{
    for(;cin>>s;)
    {
    	cout<<s<<endl;
    	find(0,0);
    	cout<<s<<endl;
    }
	return 0;
}
int main()
{
	int i, j;
	char a[101], b[101];
	while (cin.getline(a, 101))
	{
		for (i = 0; i <= 100; i++)
			b[i] = ' ';
		for (i = 0; a[i] != '\0'; i++)
		{
			if (a[i] == '(')
				b[i] = '$';
			if (a[i] == ')')
			{
				for (j = i; j >= 0; j--)
					if (b[j] == '$')
					{
						b[j] = ' ';
						break;
					}
				if (j == -1)
					b[i] = '?';
			}
		}
		for (i = 0; a[i] != '\0'; i++)
				cout << a[i];
		cout << endl;
		for (i = 0; a[i] != '\0'; i++)
				cout << b[i];
		cout << endl;
	}
	return 0;
}
int main() {
	char str[110] = {0};
	
	while(cin >> str)
	{
		int change[110] = {0};
	    char ans[110] = {0};
		int len = strlen(str);
		for(int i = 0; i < len; i++)
		{
			if(str[i] == '(')
			{
				change[i] = 1;
			}
			else if(str[i] == ')')
				change[i] = -1;
			else change[i] = 0;
		}
		int sum = 0;
		for(int i =0; i < len; i++)
		{
	          sum += change[i];
			  if(sum < 0)
			  {
				  ans[i] = '?';
				  sum = 0;
			  }

		}
		sum = 0;
		for(int i = len - 1; i >= 0; i--)
		{
	          sum += change[i];
			  if(sum > 0)
			  {
				  ans[i] = '$';
				  sum = 0;
			  }

		}
		for(int i =0; i < len; i++)
		{
			if(ans[i] != '?' && ans[i] != '$')
				ans[i] = ' ';
		}
		cout << str << endl;
		cout << ans << endl;
	}

	return 0;
}
int main()
{
	char a[100]={'\0'},b[100]={'\0'};
	int len,i,j,judge[100]={0};//??????????????????1??????0?????
	while(cin>>a)
	{
		len=strlen(a);
		for(i=0;i<len;i++)//???????
			b[i]=' ';
		for(i=99;i>=len;i--)
			b[i]='\0';
		for(i=0;i<len;i++)
		{
			if(a[i]==')')
			{ for(j=i;j>=0;j--)
			{
				if(judge[j]==0&&a[j]=='(')
				{judge[j]=1;judge[i]=1;break;}//???
			}
			if(judge[i]==0)
				b[i]='?';//????????????????????
			}
		}
		for(i=0;i<len;i++)
		{
			if(judge[i]==0&&a[i]=='(')
				b[i]='$'; //?????????????????$

		}
			for(i=0;i<len;i++)  cout<<a[i]; cout<<'\n';
	for(i=0;i<len;i++)  cout<<b[i]; cout<<'\n';
		for(i=0;i<100;i++)
		{judge[i]=0; }
	}
	return 0;
}
int a,t=0;
char A[110]={'\0'};
void cal(int m)
{
	while (t<=a)
	{
		if(A[t]=='(')
		{
			cal(t++);
		} 
 		else if(A[t]==')')
		{
		    A[m]='a';
		    A[t++]='a';
		    break;
		} 
                else
                    t++;
	}
}
int main()
{
	while(cin>>A)
	{
		char B[110];
		a=strlen(A)-1;
		for(int i=0;i<=a;i++)
			B[i]=A[i];
		t=0;
		while(t<=a) 
                    if (A[t++]=='(')
		{
			cal(t-1);
		}
		for(int i=0;i<=a;i++)
			cout<<B[i];
		cout<<'\n';
		for(int i=0;i<=a-1;i++)
		{
			if (A[i]=='(')
				cout<<'$';
			if (A[i]==')')
				cout<<'?';
			if (A[i]!='('&&A[i]!=')')
				cout<<" ";
		}
		if(A[a]=='(')
			cout<<'$'<<endl;
		if(A[a]==')')
			cout<<'?'<<endl;    
	    if(A[a]!='('&&A[a]!=')')
			cout<<" "<<endl;

	}
	return 0;
}
void main()
{
	char a[100][100],c;
	int i,b[100],j,n,k;
	for(j=0;;j++)
	{
	i=0;
	c=getchar();
	if(!((c>='a'&&c<='z')||(c>='A'&&c<='z')||c=='('||c==')'))
		break;
	a[j][i]=c;
	i++;
	while((c=getchar())!='\n')
	{
		a[j][i]=c;
		i++;
	}
	b[j]=i;
	}
	n=j;
	for(j=0;j<n;j++)
	{
	for(i=0;i<b[j];i++)
		printf("%c",a[j][i]);
	putchar('\n');
	for(i=0;i<b[j];i++)
	{
		if((a[j][i]>='a'&&a[j][i]<='z')||(a[j][i]>='A'&&a[j][i]<='Z'))
			a[j][i]=' ';
	}
	for(i=0;i<b[j];i++)
	{
		if(a[j][i]==')')
		{
			for(k=i-1;k>-1;k--)
			{
				if(a[j][k]=='(')
					break;
			}
			if(k!=-1)
			{
				a[j][k]=' ';
				a[j][i]=' ';
			}
		}
	}
	for(i=0;i<b[j];i++)
	{
		if(a[j][i]=='(')
			a[j][i]='$';
		if(a[j][i]==')')
			a[j][i]='?';
	}
	for(i=0;i<b[j];i++)
		printf("%c",a[j][i]);
	printf("\n");
	}
}
int main()
{
	char str[110]={0};
	while(true)
	{
		int i=0;
		while(true)
		{
			str[i]=getchar();
			if(str[i]=='\n')
				break;
			i++;
		}
		int n,j=0,biaoji=0;
		n=i-1;
		for(i=0;i<=n;i++)
			cout<<str[i];
		cout<<endl;
		for(i=0;i<=n;i++)
		{
			biaoji=0;
			if(str[i]==')')
			{
				for(j=i-1;j>=0;j--)//?????????
				{
					if(str[j]=='(')
					{
						biaoji=1;
						str[i]=' ';
						str[j]=' ';
						break;
					}
				}
				if(biaoji==0)
					str[i]='?';
			}
		}
		for(i=0;i<=n;i++)//??????????
		{
			if(str[i]=='(')
				str[i]='$';
			else if(str[i]==')')
				str[i]='?';
			else if(str[i]!='$'&&str[i]!='?')//???????
				str[i]=' ';
		}
		for(i=0;i<=n;i++)
			cout<<str[i];
		cout<<endl;
	}
		return 0;
}
main()
{
    int i;
    for(i=0;i<100;i++)
{
    char a[100]={'\0'},b[100]={'\0'};int c[100]={0},d[100]={0};
    int k,m,t=0,c1=0,c2=0,j1=0,j2=0,z=0,y=0,h=0;
    scanf("%s",a);
    int l=strlen(a);
    for(k=0;k<l;k++)
    {
      if(a[k]=='(') {c1=k;c[j1]=k;j1++;}
      else if(a[k]==')') {c2=k;d[j2]=k;j2++;}
           else b[k]=' ';
    }
    for(k=0;k<j2;k++)
    {
       for(m=0;m<j1;m++) if(d[k]>c[m]) {y++;if(c[m]!=-1){t++;h=m;}else z=m;} 
       if(t==0) {b[d[k]]='?';d[k]=-1;}
       else 
       {
         if(z!=y-1) {b[c[y-1]]=' ';c[y-1]=-1;b[d[k]]=' ';d[k]=-1;}
         else {b[c[h]]=' ';c[h]=-1;b[d[k]]=' ';d[k]=-1;}
       }
       t=0;y=0;
    }
    for(k=0;k<j1;k++)
    {if(c[k]!=-1) b[c[k]]='$';}
    for(k=0;k<j2;k++)
    {if(d[k]!=-1) b[d[k]]='?';}
    printf("%s\n",a);for(k=0;k<l;k++)printf("%c",b[k]);printf("\n");
}
  getchar();
  getchar();
}
char c[110];
int Try()
{
	int i,j;
	int L=-1,R=-1;
	for(i=0;i<=strlen(c)-1;++i)
	{
		if(c[i]=='(')
			L=i;
	}
	for(j=strlen(c)-1;j>L;--j)
	{
		if(c[j]==')')
			R=j;
	}
	if(L!=-1||R!=-1)
	{
		if(L==-1)
		{
			c[R]='?';
		}
		
		else if(R==-1)
		{
			c[L]='$';
		}
		else if(L<R)
		{
			c[L]=' ';
			c[R]=' ';
		}
		else if(L>R)
		{
			c[L]='$';
			c[R]='?';
		}
		Try();
	}
	if(L==-1&&R==-1)
		return 1;
}
int main()
{
	int k;
	while(cin>>c)
	{
	for(k=0;k<=strlen(c)-1;++k)
	{
		cout<<c[k];
	}
	cout<<endl;
	for(k=0;k<=strlen(c)-1;++k)
	{
		if(c[k]!='('&&c[k]!=')') 
			c[k]=' ';
	}
	Try();
	for(k=0;k<=strlen(c)-1;++k)
	{
		cout<<c[k];
	}
	cout<<endl;
	}
	return 0;
}
int match(char c[],int n)
{
	for(int i=n+1;i<strlen(c);i++)
	{
		if(c[i]==')')
		{
			c[i]=' ';
			c[n]=' ';
			return i;
		}
		else if(c[i]=='(')
		{
			i=match(c,i);
		}
	}
	c[n]='$';
	return strlen(c)-1;
}
int main()
{
	char ch[110];
	while(cin>>ch)
	{
		cout<<ch<<endl;
		for(int i=0;ch[i]!=0;i++)
			if(ch[i]!='('&&ch[i]!=')')
				ch[i]=' ';
		for(int i=0;ch[i]!=0;i++)
		{
			if(ch[i]=='(')
				i=match(ch,i);
			else if(ch[i]==')')
				ch[i]='?';
		}
		cout<<ch<<endl;
	}
	return 0;
}
//
//  main.cpp
//  match
//
//  Created by blues cookie on 12-11-28.
//  Copyright (c) 2012? blues cookie. All rights reserved.
//

int length;
char a[1000];
char c[100];
int b[100];//???????????
int zkh=0;//????????
int match(int i)
{
    if(i==length) return 0;
    if(a[i]=='(')
    {
        zkh=zkh+1;
        c[i]='$';
        b[zkh]=i;
    }
    if(a[i]==')')
    {
        if(zkh==0)
        {
            c[i]='?';
        }
        if(zkh!=0)//????????
        {
            c[b[zkh]]=' ';
            zkh=zkh-1;
            c[i]=' ';
        }
    }
    if(a[i]!='(' && a[i]!=')')
    {
        c[i]=' ';
    }
    match(i+1);
}

int main(int argc, const char * argv[])
{
    int j,k,l;
    while(cin.getline(a,200))
    {
        zkh=0;
        length=strlen(a);
        for(j=0;j<length;j++)
        {
            cout<<a[j];
        }
        cout<<endl;//??????
        
        match(0);//??????
        
        for(l=0;l<length;l++)
        {
            cout<<c[l];
        }
        cout<<endl;
        
        
    }
}
int main()
{
	char a[101];
	while(gets(a))
	{
		printf("%s\n",a);
		int l=strlen(a);
		int i,j;
		int flag=1;
		while(flag==1)
		{	
		flag=0;
		for(i=0;i<l;i++)
		{
			if(a[i]=='(')
			{
				for(j=i+1;j<l;j++)
				{
					if(a[j]==')') {a[i]='a';a[j]='a';flag=1;break;}
					if(a[j]=='(') {i=j;}
				}
				if(flag==1) break;
			}
		}
		}
		for(i=0;i<l;i++)
		{
			if(a[i]=='(') printf("$");
			else if(a[i]==')') printf("?");
			else printf(" ");
		}
		printf("\n");
	}
}
int main()
{
	char a[100]={0};
	while(cin>>a)
	{
		cout<<a;
		cout<<endl;                                         //??????
		int len,i,j;
		len=strlen(a);
		for(i=len-1;i>=0;i--)                               //?????????
		{
			if(a[i]=='(')
			{
				for(j=i+1;j<len;j++)
				{
					if(a[j]==')')
					{
						a[i]='A';
						a[j]='B';
						break;
					}
				}
			}
		}
		for(i=0;i<len;i++)                                  //???????????????????
		{
			if(a[i]=='(')
				cout<<"$";
			else
			{
				if(a[i]==')')
					cout<<"?";
				else
					cout<<" ";
			}
		}
		cout<<endl;
		memset(a,0,sizeof(a));
	}
	return 0;
}
int work(int);
char l='(',r=')',sen[110][110]={0},rem[110][110]={0};
int i,j,k,t=1,nsen[110]={0};
int main()
{
	for(i=0;;i++)
	{ 
		//cin.getline(sen[i],110);
		j = 0;
		char c;
		while((c = cin.get())!='\n')
			sen[i][j++] = c;
		for(j=0;sen[i][j]!=0;j++)
			nsen[i]++;
		for(t=0;t<nsen[i];t++)
			rem[i][t]=sen[i][t];
		work(i);
		cout<<rem[i]<<endl;
		cout<<sen[i]<<endl;
	}


		
	return 0;
}

int work(int i)
{
	for(j=1;j<=nsen[i]-1;j++)//??????
		for(k=0;k<nsen[i]-1;k++)
			if(sen[i][k]==l && sen[i][k+j]==r)
			{sen[i][k]=' ';sen[i][k+j]=' ';}//?????????????

			for(k=0;k<=nsen[i]-1;k++)
				if(sen[i][k]==l)sen[i][k]='$';
				else if(sen[i][k]==r)sen[i][k]='?';//?????????
				else sen[i][k]=' ';//?????????

				k=0;j=1;
				return 0;

}
void match(char *p)
{
	int n=(int )strlen(p);
	int a[100]={0};
	int i,j;
	for(i=j=0;i<n;i++)
	{
		if(p[i]==')')
		{
			for(j=i;j>=0;j--)
				if(p[j]=='(')
				{
					p[j]=p[i]='a';
					break;
				}
		}
	}
	for(i=0;i<n;i++)
		if(p[i]=='(')printf("$");
		else if(p[i]==')') printf("?");
		else printf(" ");
	printf("\n");

}
void main()
{
	int i=0,n;
	scanf("%d",&n);
	while(i<n)
	{
		char s[103]={'\0'};
		scanf("%s",s);
                printf("%s\n",s);
		match(s);
		i++;
	}
}
main()
{int i,j,k;
	char c[100];
    int a[100]={0};
	while(scanf("%s",c)!=EOF)
	{
		
		if(c[0]=='\0')break;
			printf("%s\n",c);
		k=strlen(c);
		for(i=0;i<=k-1;i++)
		{
			if(c[i]=='(')a[i]=-1;
		 else if(c[i]==')')
		 {a[i]=1;
			 for(j=i;j>=0;j--)
			     if(a[j]==-1)
			{a[j]=2;a[i]=2;break;}
		 }	
			
			
			else a[i]=2;	
		}
		if (c[0]==')')
		   a[0]=1;
		   
    		for(i=0;i<=k-1;i++)
			{	
				if(a[i]==2)printf(" ");
				if(a[i]==-1)printf("$");
				if(a[i]==1)printf("?");
			}
	printf("\n");
	}
}
int main()
{char a[101],b[101];

int n,p,g,t,j,i,q,m;
while(gets(a)!='\0'){
n=strlen(a);strcpy(b,a);

for(j=0;j<n;j++){
	if(a[j]==')'){t=0;
for(p=j-1;p>=0;p--){
if(a[p]=='(')
{a[p]=' ';a[j]=' ';t=1;break;
}
}
if(t!=1)
a[j]='?';}}
for(i=0;i<n;i++)
	if(a[i]=='(')a[i]='$';
	for(q=0;q<n;q++)
		if(a[q]!='$'&&a[q]!='?')a[q]=' ';for(m=0;m<n-1;m++)printf("%c",b[m]);printf("%c\n",b[n-1]);
		for(g=0;g<n-1;g++)
			printf("%c",a[g]);
		printf("%c\n",a[n-1]);}
	







	return 0;
}
char use[150],rem[150];
int len;
void rid(int begin,int end);
int main()
{while(1){
	char s;
	int i=0;
	while((s=cin.get())!='\n'){
		use[i]=s;rem[i]=s;i++;
	}
	len=i-1; //[0]->[len]
	rid(0,len);
	      for(int j=0;j<=len;j++)
		  if(use[j]=='(')
			  use[j]='$';
		  else if(use[j]==')')
			  use[j]='?';
		  else if(use[j]!='?' && use[j]!='$') use[j]=' ';

	for(i=0;i<=len;i++)
		cout<<rem[i];
	cout<<endl;
	for(i=0;i<=len;i++)
		cout<<use[i];
	cout<<endl;
}

	return 0;
}

void rid(int begin,int end)
{ 
  if(begin<=end){
	  if(use[begin]!=')')
		  rid(begin+1,end);
	  else {
		  int i=begin;
		  while(use[i]!='(' && i>=0)i--; //????
		    if(i==-1)
			  {use[begin]='?';rid(begin+1,end);}
			else 
				for(int j=i;j<=begin;j++)
				 {use[j]=' ';rid(begin+1,end);}
	      }
   }
}
/*
???
1200015101
??????
*/
int lenth,b[200];
char a[200];
void match(int n)//???n????????
{
	for(int i=n-1;i>=0;i--)
		if(b[i]==1)
		{
			b[i]=0;
			b[n]=0;
			break;
		}
}
int main()
{
	while(cin.getline(a,105))
	{
		for(int i=0;i<strlen(a);i++)
		{
			switch(a[i])
			{
			case '(':b[i]=1;break;
			case ')':b[i]=2;break;
			default :b[i]=0;
			}
		}//??
		for(int i=0;i<strlen(a);i++)
		{
			if(b[i]==2) match(i);
		}//????
		for(int i=0;i<strlen(a);i++)
			cout<<a[i];
		cout<<endl;
		for(int i=0;i<strlen(a);i++)
			switch(b[i]){
			case 0:cout<<' ';break;
			case 1:cout<<'$';break;
			case 2:cout<<'?';break;
		}//??
		cout<<endl;
	}
	return 0;
}
int main()
{
	int n;
	char a[1000],b[1000];
	int i, j, k, e=0;
	scanf("%d", &n);
	for(i=1;i<n+1;i++)
	{
		scanf("%s", &a);
		for(j=0;j<strlen(a);j++)
		{
			if(a[j]!='(' && a[j]!=')')
			{
				b[j]=' ';
			}
			else
			{
				b[j]=a[j];
			}
		}
	//??????????????
		for(j=0;j<strlen(a);j++)
		{
			if(b[j]=='(')
			{
				for(k=j+1;k<strlen(a);k++)
				{
					if(b[k]=='(')
					{
						e++;
					}
					else if(b[k]==')' && e==0 )
					{
						b[k]=' ';
						b[j]=' ';
						e++;
					}
				}
				e=0;
			}
	//?????????????????????
			else if(b[j]==')')
			{
				e=0;
				k=j-1;
				for(k=j-1;k>0;k--)
				{
					if(b[k]=='(')
					{
						b[k]=' ';
						b[j]=' ';
						k=0;
						e=1;
					}
				}
				if(e==0 && b[0]=='(')
					{
						b[0]=' ';
						b[j]=' ';
					}
			}
		}
	//????????????????????????
		for(j=0;j<strlen(a);j++)
		{
			if(b[j]=='(')
			{
				b[j]='$';
			}
			else if(b[j]==')')
			{
				b[j]='?';
			}
		}
	//???????????????$??
		for(j=0;j<strlen(a);j++)
		{
			printf("%c", a[j]);
		}
		printf("\n");
		for(j=0;j<strlen(a);j++)
		{
			printf("%c", b[j]);
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int n,i;
	scanf("%d\n",&n);
	while(n>0)
	{
		char s[104],start=0;
		int len=0;
			gets(s);
			puts(s);
		len=strlen(s);
            int j;
			for(i=len-1;i>=0;i--)
			{
				if(s[i]=='(')
				{
                   
					for(j=i;j<len;j++)
					{
if(s[j]==')')
{s[i]=' ';s[j]=' ';break;}
					}
				}
			}
	   for(i=0;i<len;i++)
	   {
		  if(s[i]=='(')
			  printf("$");
		 else if(s[i]==')')
			  printf("?");
		  else printf(" ");
	   }
	   printf("\n");
		n--;
	}
}
//**********************************
//*??????.cpp                *
//*??????                    *
//*???2011-11-02                *
//**********************************


int main()
{
    char sen[201],done[201];          //done[201]????????
    int pos[200];                     //????????????
    int left, right;                  //left right???????????
    int i, count, len;                //count ????????????????
    while (cin.getline(sen,200))
    {
          count = 0;
          left = 0;
          right = 0;
          for (i = 0; i < 200; i++)
          {
              done[i] = ' ';           //???????? ??
          }
          len = strlen(sen);
          for (i = 0; i < len; i++)
          {
              if (sen[i] == '(')
              {
                  pos[count] = i;                  //????????????????
                  done[pos[count]] = '$';          //??????????????$
                  left ++;                         //??????1
                  count ++;
              }
              if (sen[i] == ')')
              {
                  if (left <= right)                //????????????????????
                  {
                      done[i] = '?';
                  } 
                  else                             
                  {
                       right ++;
                       done[pos[count - 1]] = ' ';    //???????????????????????????
                       count --;
                  }
              }
          }
          cout << sen << endl;                          //??????
          for (i = 0; i < len; i++)
          {
              cout << done[i];                         //?????????
          }
          cout << endl;
    }
    return 0;
}
int main()
{
    char a[105];
    int mark[105] = {0};
    while(cin.getline(a,101))
    {
        for (int i = 0; i < strlen(a); i++)
        {
            if (a[i] == '(')
            {
                mark[i] = 1;
            }
            if (a[i] == ')')
            {
                mark[i] = -1;
            }
        }
        for (int i = 1; i < strlen(a); i++)
        {
            if (mark[i] == -1)
            {
                for (int j = i - 1; j >= 0; j--)
                {
                    if (mark[j] == 1)
                    {
                        mark[i] = 0;
                        mark[j] = 0;
                        break;
                    }
                }
            }
        }
        for (int i = 0; i < strlen(a); i++)
            cout << a[i];
        cout << endl;
        for (int i = 0; i < strlen(a); i++)
        {
            if (mark[i] == 0) cout << " ";
            else if (mark[i] == 1) cout << "$";
            else cout << "?";
        }
        cout << endl;
        for (int i = 0; i < strlen(a); i++)
            mark[i] = 0;
    }
    return 0;
}
void pipei(char x[],int l)
{
	int i,j,count;
	for(;count!=0;)
	{
		count=0;
		for(i=0;i<l;i++)
		{
			if(x[i]!='(')
				continue;
			for(j=i+1;j<l;j++)
			{
				if(x[j]!='('&&x[j]!=')')
					continue;
				if(x[j]=='(')
					break;
				if(x[j]==')')
				{
					count++;
					x[i]=32;x[j]=32;
					break;
				}
			}
		}
	}
	for(i=0;i<l;i++)
	{
		if(x[i]!='('&&x[i]!=')')
			printf(" ");
		else if(x[i]=='(')
			printf("$");
		else
			printf("?");
	}
	printf("\n");
}
int main()
{
	char x[101];
	int l,i;
	for(;;)
	{
		gets(x);
		if(x[0]=='\0')
			break;
		l=strlen(x);
		puts(x);
		pipei(x,l);
		for(i=0;i<l;i++)
			x[i]='\0';
	}
}
char s[100];
int temp[100];
int addition[100];
int flag,i,j;
int f()
{
    for(i=0;i<strlen(s);i++)
      {
          if(s[i]=='(')  {s[i]='$';addition[flag]=i;flag++;}
          else if(s[i]==')')
            {
                if(flag)
                    {
                        s[i]=' ';
                        flag--;
                        s[addition[flag]]=' ';
                    }
                    else s[i]='?';
            }
           else s[i]=' ';
      }
}
int main()
{
    while(cin>>s)
      {
          cout<<s<<endl;
          flag=0;
          f();
          cout<<s<<endl;
      }
      return 0;
}
//***********************************************************************
//????????? 
//????????? 
//??????
//***********************************************************************
int match(int i);        //????
char str[101];
int n; 
int main()                                  //??? 
{ 
    while(cin>>str)                        //???? 
    {
                   cout<<str<<endl; 
                   n = strlen(str);
                   match(0);
                   cout<<str<<endl; 
    } 
    return 0;
}
int match(int i)       //???? 
{
     if(i == n)                           //???? 
          return 0; 
     else if(str[i] == ')')              //?????? 
     {
          str[i] = '?'; 
          for(int j = i - 1; j >= 0; j--)
                              if(str[j] == '$')
                              {
                                        str[j] = ' ';
                                        str[i] = ' ';
                                        break; 
                              } 
     }
     else if(str[i] == '(')            //??????$ 
          str[i] = '$'; 
     else 
     {
          str[i] = ' '; 
     } 
     match(i + 1); 
     return 0;
}
int main()
{
	int h,i,j,k,l,m,n,len,left=0,t=0,c[101]={0};
	char a[101],b[101];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		int c[101]={0};
		left=0;
		t=0;
		scanf("%s",a);
		len=strlen(a);
		//for(j=0;j<len;j++)
		//	b[j]=' ';
		//b[len]='\0';
		for(j=0;j<len;j++)
		{
			if(a[j]!='('&&a[j]!=')')
				b[j]=' ';
			if(a[j]=='(')
			{
				left++;
				b[j]='$';
				c[t]=j;
				t++;
			}
			if(a[j]==')')
			{
				if(left==0)
				{
					b[j]='?';
				}
				else
				{
					t--;
					b[c[t]]=' ';
					b[j]=' ';
					left--;
				}
			}
			
		}
		printf("%s\n",a);
		for(h=0;h<len;h++)
		{
			printf("%c",b[h]);
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int n, l, i, k;
	char str[200]={0};
	scanf("%d\n", &n);
	while(n)
	{
		scanf("%s", str);
		puts(str);
		printf("\n");
		l=strlen(str);
		for(i=l-1; i>=0; i--)
		{
			if(str[i]=='(')
			{
				for(k=i; k<l; k++)
				{
					if(str[k]==')')
					{
						str[i]=' ';
						str[k]=' ';
						k=l;
					}
				}
			}
		}
		for(i=0;i<l;i++)
		{
			if(str[i]=='(')
			{
				str[i]='$';
			}
			else if(str[i]==')')
			{
				str[i]='?';
			}
			else
			{
				str[i]=' ';
			}
		}
		puts(str);
		n--;
	}
	return 0;
}
void main()
{
	int i,j,p[109];
	char s[110],t[110];
	while(scanf("%s",s)!=EOF){
	for(i=0;i<109;i++)
		p[i]=0;
	strcpy(t,s);
	for(i=0,j=0;i<strlen(s);i++){
		if(s[i]=='(')
			p[j++]=i;
		if(s[i]==')'&&j>0)
			s[p[j---1]]=s[i]=' ';
		if(s[i]!='('&&s[i]!=')')
			s[i]=' ';
	}
	for(i=0;i<strlen(s);i++){
		if(s[i]=='(')
			s[i]='$';
		if(s[i]==')')
			s[i]='?';
	}
	printf("%s\n%s\n",t,s);
	}
}
int main()
{
	char a[100]={0	};
	while(cin>>a)
	{
		cout<<a<<endl;
		int l=strlen(a);
		for(int i=0;i<l;i++)
		{
			switch(a[i])
			{
				case '(':
					a[i]='$';
					break;
				case ')':
					a[i]='?';
					break;
				default:
					a[i]=' ';
			}
			if(i>l)
				break;
		}
		for(int i=0;i<l;i++)
		{
			if(a[i]=='$')
				for(int j=i+1;j<l;j++)
				{
					if(a[j]=='?')
					{
						a[i]=a[j]=' ';
						break;
					}
					if(a[j]=='$')
						break;
				}
			if(a[i]=='?')
				for(int j=i-1;j>=0;j--)
				{
					if(a[j]=='$')
					{
						a[i]=a[j]=' ';
						break;
					}
					if(a[j]=='?')
						break;
				}
		}
		for(int i=0;i<l;i++)
			cout<<a[i];
		cout<<endl;
		for(int i=0;i<100;i++)
			a[i]=0;
	}
}