semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
   for(int p=0;p<15;p++)
   {char c[110];
   void f(char c[110]);
   cin.getline(c,110,'\n');
   cout<<c<<endl;
   int i,j,k,l;
   l=strlen(c);
   for(i=0;i<l;i++)
   {
        if(c[i]!='('&&c[i]!=')') c[i]=' ';    
    }
    f(c);
    for(i=0;i<l;i++)
    {
        if(c[i]==')') c[i]='?';
    }
    cout<<c<<endl;}
    
    return 0;
}
void f(char c[110])
{
    int i,j,k,l;
    l=strlen(c);
    for(i=(l-1);i>=0;i--)
    {
        if(c[i]=='(')
        {
            for(j=(i+1);j<l;j++)
            {
                if(c[j]==')')
                {
                    c[j]=' ';
                    c[i]=' ';
                    k=1;
                    break;
                }
                k=0;
            }
            if(k==0) c[i]='$';
            f(c);
        }
    }
}
int main()
{
	while(1)
	{
		char str[101];
		int final[101]={0};
		cin.getline(str,101);
		if(str[0]=='\0') break;
		int i=0,p=0,q=0,k=0,flag=0;
		while(str[i]!='\0')
		{
			if(str[i]=='(') final[i]=1;
			if(str[i]==')') 
			{
				final[i]=2;
				for(int j=i;j>=0;j--)
				{
					if(final[j]==1)
					{
						final[i]=0;
						final[j]=0;
						break;
					}
				}
			}
			i++;
		}
		cout<<str<<endl;
		while(str[k]!='\0')
		{
			if(final[k]==1||final[k]==2) 
			{
				p=k;
				if(flag==0) 
				{
					q=k;
					flag=1;
				}
			}
			k++;
		}
		for(int j=q;j<=p;j++)
		{
			if(final[j]==1) cout<<'$';
			else if(final[j]==2) cout<<'?';
			else cout<<' ';
		}
		cout<<endl;
	}
	return 0;
}
void match(char *s)
{
	int a[100],i,j=0;
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]=='(')
		{
			s[i]='$';
			a[j]=i;              //??????a??? 
			j++;
		}
		else if(s[i]==')')
		{
			if(j>0)               //j>0?????? 
			{
				s[i]=' ';
				s[a[j-1]]=' ';          //??????????? 
				j--;                     //??????? 
			}
			else s[i]='?';
		}
		else s[i]=' ';
	}
}

int main()
{
	int n,i;
	char s[101];
	scanf("%d\n",&n);
	for(i=0;i<n;i++)
	{
		gets(s);
		puts(s);
		match(s);
		puts(s);
	}
	return 0;
}
int main()
{
	char str[101];
	while(cin.getline(str,101,'\n'))
	{
		char k[101]={0},ts[101]={0};
		int i,t,num[101]={0},temp=0;
		for(i=0;str[i]!='\0';i++)
		{
			k[i]=' ';
			ts[i]=str[i];
			if(str[i]=='(')
				temp++;
			if(str[i]==')')
				temp--;
			if(temp<0)
			{
				k[i]='?';
				str[i]=' ';
				temp++;
			}
		}
		t=i-1;
		temp=0;
		for(i=t;i>=0;i--)
		{
			if(str[i]==')')
				temp++;
			if(str[i]=='(')
				temp--;
			if(temp<0)
			{
				k[i]='$';
				str[i]=' ';
				temp++;
			}
		}
		cout<<ts<<endl<<k<<endl;
	}
	return 0;
}
int dg(int a,int b);

char st[1000],st2[1000];

int main()
{
    while (cin.getline(st,1000))
    {

          st2[strlen(st)]='\0';
          dg(1,0);
          cout<<st<<endl<<st2<<endl;
    }

}
int dg(int a,int b) //a?????????????b?????????????????0??????????????????????0
{
    for (int i=a;i<=strlen(st);i++)
    {
     //   cout<<b<<endl;
      //  cout<<b<<' '<<i<<' '<<st2<<endl;
        if (st[i-1]=='(')
        {
          //  cout<<'A'<<endl;
           int t=dg(i+1,i);
           if (t==0) {st2[i-1]='$'; break;}
           if (t>0) {st2[i-1]=' '; i=t; continue;}
        }
        else if (st[i-1]==')')
        {

             if (b==0) st2[i-1]='?';
             if (b>0) {st2[i-1]=' '; return i;}
        }
        else st2[i-1]=' ';
    }
    return 0;
}
void main()
{
	char a[110];
	int i,j,n,m=0;
	while(scanf("%s",a)!=EOF)
	{
	n=strlen(a);
	for(i=0;i<n;i++) printf("%c",a[i]);
	printf("\n");
	for(i=n-1;i>=0;i--)
	{		
		if(a[i]=='(')
		{
			for(j=i+1;j<n;j++)
			{
				if(a[j]==')') {a[i]='a';a[j]='a';break;}
			}
		}
	}
	for(i=0;i<n;i++)
	{
		if(a[i]=='(') a[i]='$';
		else
			if(a[i]==')') a[i]='?';
		else a[i]=' ';
	}
	for(i=0;i<n;i++) printf("%c",a[i]);
	printf("\n");
	}
}
int main()
{
	char c[101];
	int rr,lr,ll,rl;
	for(;(scanf("%s",c))!=EOF;)
	{
		printf("%s\n",c);
		char p[101];
		int i,l;
		rr=0;rl=0;ll=0;lr=0;
		for(l=0;c[l]!=0;l++)
		{
			p[l]=' ';
		}
		p[l]='\0';
		for(i=0;c[i]!=0;i++)
		{
			if(c[i]=='(')
			{
				ll=ll+1;
			}
			if(c[i]==')')
			{
				lr=lr+1;
				if(ll<lr)
				{
					p[i]='?';
					lr=lr-1;
				}
			}
		}
		for(i=l-1;i>=0;i=i-1)
		{
			if(c[i]==')')
			{
				rr=rr+1;
			}
			if(c[i]=='(')
			{
				rl=rl+1;
				if(rr<rl)
				{
					p[i]='$';
					rl=rl-1;
				}
			}
		}
	printf("%s\n",p);
	}
	return 0;
}
int main(){
	char num[101],t[101];
	int s[101];
	int k,j;
	int len;
	int aa;

	while(gets(num)){
		strcpy(t,num);
		len=strlen(num);
		for(k=0;k<len;k++){
			s[k]=1;
		}
		for(k=0;k<len;k++){
			if(num[k]==')'){
				for(j=k-1;j>=0;j--){
					if(num[j]=='('){
						s[j]=0;
						s[k]=0;
						num[j]=0;
						break;
					}
				}
			}
		}
		printf("%s\n",t);
		for(aa=0;aa<len;aa++){
			if(s[aa]==1&&t[aa]=='(')
				printf("$");
			else if(s[aa]==1&&t[aa]==')')
				printf("?");
			else
				printf(" ");
		}
		printf("\n");
	}
}
int main()
{
	char sen[101], rsen[101];
	while (cin >> sen)
	{
		int pos[101], num = 0, i, t = 0;
	cout <<  sen << endl;
	for (i = 0; i <= strlen(sen) - 1; i++)
	{
		if (sen[i] == '(')
		{
			num++;
			pos[num] = i;
			rsen[i] = '$'; 
		}
		else if (sen[i] == ')')
		{
			if (num > 0)
			{
				rsen[pos[num]] = ' ';
				rsen[i] = ' ';
				num--;
			}
			else
			{
				rsen[i] = '?';
			}
		}
		else
		{
			rsen[i] = ' ';
		}
	}
	if (num != 0)
	{
		for (i = 1; i <= num; i++)
		{
			rsen[pos[num]] = '$';
		}
	}
	for (i = 0; i <= strlen(sen) - 2; i++)
	{
		cout << rsen[i];
	}
	cout << rsen[strlen(sen) - 1] << endl;
	};
	return 0;
}
int main()
{
	void function(char a[200]);
	char a[200];
	while(scanf("%s",a)!=EOF)
	{
		function(a);
		printf("%s\n",a);
	}
	return 0;
}
void function(char a[200])
{
		int p[200];
	    int q[200];
	    int pa=0,qa=0,t1,t2,j,i,l;
		pa=0;qa=0;
		printf("%s\n",a);
		l=strlen(a)-1;
		for(i=0;i<=l;i++)
		{
			if(a[i]=='(')
			{
				p[pa]=i;
				pa++;
			}
			else if(a[i]==')')
			{
				q[qa]=i;
				qa++;
			}
			else a[i]=' ';
		}
		for(i=pa-1;i>=0;i--)
		{
			for(j=0;j<qa;j++)
			{
             	t1=p[i];t2=q[j];
				if(p[i]<q[j]&&a[t2]!=' ')
				{
					a[t1]=' ';a[t2]=' ';
					break;
				}
			}
			if(j==qa)
			{
				t1=p[i];
				a[t1]='$';
			}
		}
		for(j=0;j<qa;j++)
		{
			t2=q[j];
			if(a[t2]==')')
				a[t2]='?';
		}
}
int main()
{
	int i,j,m,flag,len,k,x;
	int a[100],b[100];
	char str[101],s[101];
	while(gets(str))
	{
		for(i=0;i<100;i++)
		{
			a[i]=0;
			b[i]=0;
		}
		m=0;
		for(i=0;str[i]!='\0';i++)
		{
			if(str[i]==')')
			{
				j=i;
				x=1;
				while(j>=0)
				{
					if(str[j]=='(')
					{
						for(k=0;k<m;k++)
						{
							if(a[k]==j) x=0;
						}
						if(x!=0)
						{

						a[m]=j;
						b[m]=i;
						m++;
						break;
						}
					}
					j--;
					x=1;
				}
			}
		}
		
		strcpy(s,str);
		flag=1;
		for(i=0;s[i]!='\0';i++)
		{
			if(s[i]=='(')
			{
				for(j=0;j<m;j++)
				{
					if(i==a[j]) 
					{
						flag=0;
						break;
					}
				}
				if(flag==0) s[i]=' ';
				else s[i]='$';
			}
			else if(s[i]==')')
			{
				for(j=0;j<m;j++)
				{
					if(i==b[j])
					{
						flag=0;
						break;
					}
				}
				if (flag==0) s[i]=' ';
				else s[i]='?';
			}
			else s[i]=' ';
			flag=1;
		}
	len=strlen(s);
	for(j=len;j>=0;j--)
	{
		if((s[j]==' ')||(s[j]=='\0'))
		{
			if(s[j-1]!=' ')
			{
				s[j]='\0';
				break;
			}
		}
	}
	printf("%s\n",str);
	j=0;
	while(s[j]==' ') j++;
	for(i=j;s[i]!='\0';i++)
	{
		printf("%c",s[i]);
	}
	printf("\n");
	
	
	}
	return 0;
}
main()
{
    char str[200];
    while(scanf("%s",str)!=EOF)
    {
        int n,i,j,k;
        printf("%s\n",str); 
        n=strlen(str);
        for(i=0,k=0;i<n;i++)
        {
            if(str[i]=='(')
            {
                k=i;
            }
            if(str[i]==')'&&str[k]=='(')
            {
                str[i]=' ';
                str[k]=' ';
                i=-1;
                k=0;
            }
        }
        for(i=0;i<n;i++)
        {
            if(str[i]!='('&&str[i]!=')')
                printf(" ");
            else
            {
                if(str[i]=='(')
                    printf("$");
                else
                    printf("?");
            }
        }
        printf("\n");
    }
    }
void f(char a[],int,int);//??????????a
void g(char a[]);//?????????????????
int main()
{
	char str[100][101];
	int i,n=0,j;
	while(cin.getline(str[n++],101))//??
	{}
	for(i=0;i<n;i++)
	{
		cout<<str[i]<<endl;
		for(j=0;j<strlen(str[i]);j++)
		{
			if(str[i][j]==')')//?????????
			{
				f(str[i],j-1,j);
			}
		}
		g(str[i]);
		cout<<str[i]<<endl;
	}
	return 0;
}
void f(char a[],int x,int y)
{
	if(a[x]=='(')//??? ??????? ? ???
		a[x]=a[y]='a';
	else if(x>0)//????
		f(a,x-1,y);
}
void g(char a[])
{
	int i;
	for(i=0;i<strlen(a);i++)
	{
		if(a[i]=='(')
			a[i]='$';
		else if(a[i]==')')
			a[i]='?';
		else 
			a[i]=' ';
	}
}
int main()
{
	void kuohao(char c[]);//????????????
	char c[110]={'\0'};
	int i;
	while(cin.getline(c,101))
	{cout<<c<<endl;
	for(i=0;c[i]!='\0';i++)
		if(c[i]!='('&&c[i]!=')')
			c[i]=' ';//????????????
	kuohao(c);
	for(i=0;c[i]!='\0';i++)
		if(c[i]==')')
			c[i]='?';//???????????
	cout<<c<<endl;}
	return 0;
}
void kuohao(char c[])
{
	int i,j,n;
	for(n=0;c[n]!='\0';n++);//???????
	for(i=n-1;i>=0;i--)
		if(c[i]=='(')
		{
			for(j=i+1;c[j]!='\0';j++)
				if(c[j]==')')
				{c[i]=c[j]=' ';break;}
			if(c[j]=='\0')//??????????????????????$
				c[i]='$';
			kuohao(c);//????
		}
}
char a[101];
int find(char a[], int b,int x)
{
	int i;
	for (i = b; i <x; i++)
	{
		if (a[i + 1] == '$')
		{
			return 0;
		}
		if (a[i+1] == '?')
		{
			a[i+1] = ' ';
			a[b] = ' ';
			return 1;
		}
	}
	return 0;

}

int main()
{
	while (cin.getline(a,101))
	{
		//cin.getline(a, 101);
		int x = strlen(a), i, l[100], t = 0, temp;
		for (i = 0; i < x; i++)
			cout << a[i];
		cout << endl;
		for (i = 0; i < x; i++)
		{
			if (a[i] == '(')
			{
				a[i] = '$';
				l[t] = i;
				t++;
			}
			else if (a[i] == ')')
			{
				a[i] = '?';
			}
			else
				a[i] = ' ';
		}
		for (i = 0; (i < t) && (i >= 0);)
		{
			if (a[l[i]] == ' ')
			{
				i++; 
				continue;
			}
			temp = find(a, l[i], x);
			if (temp == 0)
				i++;
			if (temp == 1)
			{
				i = 0;
				continue;
			}
		}
		for (i = 0; i < x; i++)
			cout << a[i];
		cout << endl;
	}
	return 0;
}
int main(int argc, char* argv[])
{
	int n,p,i,j,len;
	scanf("%d",&n);
	for(p=0;p<n;p++)
	{
	    char a[150];
		scanf("%s",a);
        len=strlen(a);
        char b[150];
		for(i=0;a[i]!=0;i++)
		{
		    switch(a[i])
		     {
		            case '(':b[i]='$';
						     break;
					case ')':b[i]='?';
						     break;
					default :b[i]=' ';
		     }
		}
	    for(i=0;i<len;i++)
		{
		    if (b[i]=='?')
			{
			      for (j=i-1;j>=0;j--)
				  {
				        if(b[j]=='$')
						{
						     b[i]=' ';
							 b[j]=' ';
							 break;
						}
				  }
			}
		}
		printf("%s",a);
		printf("\n");
		for(i=0;i<len;i++)
		printf("%c",b[i]);
		printf("\n"); 
		
	}
	return 0;
}
int main()
{
	char c[150],d[150]={0};
	int i,j,l=11,x;
	for(x=1;x<=10;x++)
	{
		for(i=0;i<=l;i++)
	{		
		c[i]=' ';
		d[i]='\0';
	}
		gets(c);
		l=strlen(c);
		for(i=0;;i++)
		{
			if(c[i]=='\0') break;
			if(c[i]==')')
			{
				for(j=i;j>=0;j--)
				{
					if(c[j]=='(')
					{
						c[j]='!';
						break;
					}
				}
				if(j<0)
				{
					c[i]='?';
					d[i]='?';
				}
			}
		}
		for(i=0;;i++)
		{
			if(c[i]=='(')
			{
				c[i]='!';
				d[i]='$';
			}
			if(c[i]=='\0') break;
		}
		for(i=0;;i++)
		{
			if(c[i]=='\0') break;
			if(c[i]=='!')
				c[i]='(';
			if(c[i]=='?')
				c[i]=')';
			if(d[i]!='$'&&d[i]!='?')
				d[i]=' ';
		}
		puts(c);
		puts(d);
	}
	return 0;
}
int main(){
	int n,i,j,k,l;
	char as[110],bs[110],cs[110];
	for(k=0;;k++)
	{
		scanf("%s",as);
		int len=strlen(as);
		if(strcmp(as,bs)==0)
			break;
		strcpy(bs,as);
		for(i=0;i<len;i++)
		cs[i]=' ';
		cs[len]=0;
		for(l=0;l<len;l++)
		{
		for(i=l;i<len;i++)
		{
			if(as[i]==')')
			{
				for(j=i;j>=0;j--)
				{
					if(as[j]=='(')
					{
						as[i]=' ';
						as[j]=' ';
						j=0;
						i=0;
					}
				}
			}
		}
		}
		for(i=0;i<len;i++)
		{
			if(as[i]=='(')
				cs[i]='$';
			else if(as[i]==')')
				cs[i]='?';
		}
		printf("%s\n%s\n",bs,cs);
		strcpy(bs,as);
	}
	return 0;
}
int main()
{
	char str1[200];
	char str2[200];
	int i=0,length,sign,flag;
	char c;
	scanf("%c",&c);
	while(c!=EOF)
	{
		i=0;
		sign=-1;
	while(c!='\n')
	{
		str1[i]=c;
		if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
		{
			str2[i]=' ';
		}
		else
		{
			str2[i]=c;
		}
	    i++;
		scanf("%c",&c);
	}
	str1[i]='\0';
	str2[i]='\0';
	length=strlen(str2);
	i=0;
	flag=0;
	while(i>=0)
	{
		if(str2[i]=='(')
		sign=i;
		if(str2[i]==' ')
		{
			if(i==length-1)
			{
				if(flag==1)
				{
					flag=0;
					i=-1;
				}
				else break;
			}
			i++;
			continue;
		}
		if((str2[i]==')')&&(sign>=0))
		{
			str2[sign]=' ';
			str2[i]=' ';
			flag=1;
			sign=-1;
		}
		if(i==length-1)
		{
			if(flag==1)  { flag=0;i=-1;sign=-1;}
			else  break;
		}
		i++;
	}
	for(i=0;i<length;i++)
	{
		if(str2[i]=='(')
			str2[i]='$';
		if(str2[i]==')')
			str2[i]='?';
	}
	printf("%s\n",str1);
	printf("%s\n",str2);
	scanf("%c",&c);
	if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c=='('||c==')')
		continue;
	else break;
	}
	return 0;
}
//============================================================================
// Name        : kuohaopipei.cpp
// Author      :
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

char s[1000];

int findri(int x,int y)
{  int p;
	if(s[x]=='\0')return -1;
	if(s[x]=='(')
	  {
		p=findri(x+1,y+1);
		if(p==-1){s[x]='$';return -1;}
		else {s[x]=' ';return findri(p+1,y);}
	  }
		else if(s[x]==')')
	   {
		if(y==0){s[x]='?';return findri(x+1,y);}
		else {s[x]=' ';return x;}

		}
	else {s[x]=' ';return findri(x+1,y);}





	  }








int main() {
	int len;
	int i;
	while(cin>>s)
	{len=strlen(s);
	for(i=0;i<len;i++)
	cout<<s[i];
	cout<<'\n';
	findri(0,0);
	for(i=0;i<len;i++)
	cout<<s[i];
	cout<<'\n';}

	return 0;
}
int main()
{ char a[205];
  while (cin.getline(a,200))
         { char b[205];
           int x[205]={-1},y[205]={-1},i,j,k,n,p,q;
           p=0;
           q=0;
           n=strlen(a);
           for (i=0;i<n;i++)
                b[i]=' ';
           for (i=0;i<n;i++)
               { 
                    if (a[i]=='(')
                    { p++;
                      x[p]=i;
                        }
                  if (a[i]==')')
                    { q++;
                      y[q]=i;
                      if ((p!=0)&&(x[p]<y[q]))
                         { x[p]=-1;
                           y[q]=-1;
                           p--;
                           q--;
                          }
                    }
                    }
          for (i=1;i<=p;i++)
               b[x[i]]='$' ;
          for (i=1;i<=q;i++)
               b[y[i]]='?' ;
          cout<<a<<endl;      
          for (i=0;i<n;i++)
               cout<<b[i];
          cout<<endl;
              }
   return 0;        
    
    }
int main()
{
	int i,l,j = 0;
	char a[150],b[150];
	while(cin.getline(b,150)){
	l = strlen(b);
	for ( i = 0; i < l; i ++ )
	{
		cout<<b[i];
		if (b[i] == '(')  a[i] = b[i];//???????????????
		else if ( b[i] == ')' ) a[i] = b[i];
		else a[i] = ' ';
	}
	cout << endl;
	if ( a[l-1] == '(' )  a[l-1] = '$';
	for ( i = l - 1; i >= 0; i -- )//????????
	{
		if ( a[i] == '(')//?????????????????
		{
			for ( j = i + 1 ; j < l ; j ++ )
			{
				if (a[j] == ')') 
				{
					a[i] = ' ';
					a[j] = ' ';
					break;
				}
			}
			if ( j == l)   a[i] = '$';//??????????????????$
		}
	}
	for ( i  = 0; i < l; i ++)
	{
		if ( a[i] == ')' )  a[i] = '?';//????????????
	}
	for ( i = 0; i < l; i ++) cout<< a[i];
	cout << endl;
         }
	return 0;
}
int main()
{
	char c[100];
	int l;
	
	while(cin >> c)
	{
		int a[100] = {0};		
		int left = 0;
		
		l = strlen(c);
		
		for(int i = 0; i < l; i ++)
		{
			
			if(left == 0 && c[i] == ')')
			a[i] = 1;
						
			if(c[i] == '(')
			left ++;
			
			if(c[i] == ')' && left > 0)
			{		
				left --;
				
				for(int j = i; j >= 0; j --)
				{
					if((c[j] == '(' ) && (a[j] != 2))
					{
						a[j] = 2;
						break;
					}
				}
			}
		}
		
		int count = 0;
		
		if(left != 0)
		for(int i = l; count < left; i --)
		{
			if(c[i] == '(' && a[i] != 2)
			{
				a[i] = -1;
				count ++;
			}
		}
		
		for(int i = 0; i < l; i ++)
		cout << c[i];
		
		cout << endl;
	
		for(int i = 0; i < l; i ++)
		{
			if(a[i] == 0 || a[i] == 2)
			cout << " ";
			else if(a[i] == 1)
			cout << '?';
			else if(a[i] == -1)
			cout << '$';
		}
		
		cout << endl;
		
	}
	
	return 0;
}
int main()
{
	int n;
	char b[1000],bc[1000];
	scanf("%d",&n);
	int a;
	getchar();
	for(a=0;a<n;a++)
	{
		gets(b);
		int c;
		c=strlen(b);
		int ch;
		for(ch=0;ch<c;ch++)
			printf("%c",b[ch]);
		int d;
		for(d=0;d<c;d++)
		{
			if(b[d]=='(')
			{
				int e;
				int shao[100],f=0;
				shao[0]=d;
				for(e=d+1;e<c;e++)
				{
					if(b[e]=='(')
					{
						f++;
						shao[f]=e;
					}
					 else if(b[e]==')')
					{
						b[e]=' ';
						b[shao[f]]=' ';
						f--;
					}
					 if(f==-1)
						 break;
				}
				if(f!=-1)
					b[d]='$';
			}
			else if(b[d]==')')
			{
				b[d]='?';
			}
			else
				b[d]=' ';
		}
		printf("\n");
		int x;
		for(x=0;x<c;x++)
			printf("%c",b[x]);
		printf("\n");
	}
	return 0;
}
/*
 * kuohaopipei.cpp
 *
 *  Created on: 2012-12-5
 *      Author: Lenovo
 */
int main() {
	int i, j, l = 0;
	char a[105], b[105];
	while (cin >> a) {
		l=0;
		for (i = 0; i < strlen(a); i++)
			b[i] = ' ';
		for (i = 0; i < strlen(a); i++) {
			if (a[i] == ')' && l == 0) {
				b[i] = '?';
				continue;
			}
			if (a[i] == '(') {
				b[i] = '$';
				l++;
			}
			if (a[i] == ')' && l > 0) {
				for (j = i - 1; j >= 0; j--) {
					if (b[j] == '$') {
						b[j] = ' ';
						l--;
						break;
					}
				}
				continue;
			}
		}
		cout << a << endl;
		for (i = 0; i < strlen(a); i++)
			cout << b[i];
		cout<<endl;
	}
	return 0;

}
char str[120];int n;
void dispose(int x)
{
    int i,j,k=0;
    for(i=x+1,k=0;i<n;i++)
    {
        if(str[i]=='('&&k==0)
        {    
            dispose(i);
            k++;
            
        }
        if(str[i]==')')
        {
            str[i]=' ';
            str[x]=' ';
            for(j=i+1;j<n;j++)
            {
                if(str[j]=='(')
                {
                    dispose(j);
                }
            }
            break;
        }
    }
}
main()
{
    int N,e;scanf("%d",&N);
    for(e=0;e<N;e++)
    {
        scanf("%s",str);printf("%s\n",str);
        int i,j,k;n=strlen(str);
        for(i=0;i<n;i++)
        {
            if(str[i]=='(') break;
        }
        dispose(i);//printf("%d\n",i);printf("%s\n",str);
        for(i=0;i<n;i++)
        {
            if(str[i]=='(') printf("$");
            else 
            {
                if(str[i]==')') 
                    printf("?");
                else 
                    printf(" ");
            }
        }
        printf("\n");
    }
    }
int main()
{  
    char line[101], label[101];   //label???????
    int  pos[101];                        //pos???????????
    
	while (cin.getline(line, 101)) 
	{  
		int  left = 0, right = 0;       //?????????
		int	 len = strlen(line);
		for (int i = 0; i < 100; i++)  //???label
				label[i] = ' ';
		for (int i = 0;  line[i] != '\0';  i++)
		{	
			if (line[i] == '(')			//???????????	
			{     
				left++;
				pos[left] = i;  
			} 
	
			if(line[i]==')')
				if( left <= right)		//????????????????
					label[i]='?';   	//?????????
				else
					left--;				 //???????????????
	    }
		
		if (left >= 1)    // ???-1????-1???????????
		   for(int i = 1; i <= left; i++)
				label[pos[i]] = '$';             //??????????$
		
		label[len] = '\0';                                  //???????
		cout << line << endl;	
		cout << label << endl;  
	}
		return 0;
}
int main()
{
	int n,i,s,j,k;
	char c[101];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		getchar();
		scanf("%s",&c);
		s=strlen(c);
		printf("%s\n",c);
		for(j=0;j<s;j++)
		{
			if(c[j]!='(' && c[j]!=')')
				c[j]=' ';
			if(c[j]==')')
			{
				for(k=j;k>=0;k--)
				{
					if(c[k]=='(')
					{
						c[j]=' ';
						c[k]=' ';
						break;
					}
				}
			}
		}
		for(j=0;j<s;j++)
		{
			if(c[j]=='(')
				c[j]='$';
			if(c[j]==')')
				c[j]='?';
		}
		printf("%s\n",c);
	}
	return 0;
}
int main()
{
	char a[101],  t[101];
	int  i, j, k, c, b[101] = {0}, n;
	for(;cin >> a;)
	{
		n = strlen(a);
		for(i = 0;i < n;i++)
		{
			b[i]=0;
			t[i]=' ';
		}
	for(i = 0;i <= n;i++)
	{
		
		if(a[i] == ')')
		{
			for(j = i - 1;j >= 0;j--)
				if(a[j] == '(' && b[j] == 0)
				{
					b[i] = 1;
					b[j] = 1;
					break;
				}
				if(j == -1)
				{	c++;
					t[i] = '?';
				}
		}
		if(a[i] == '\0')
			for(k = 0;k < i;k++)
			{
				if(a[k] == '(' && b[k] == 0)
				{
					c++;
					t[k] = '$';
				}
			}
	}
	cout<<a<<endl;
	if(c!=0)
	{
		i = 0;
		while(t[i] == ' ')
			i++;
		k = n - 1;
		while(t[k] == ' ')
			k--;
		for(j = i;j <= k;j++)
		cout << t[j];
	}
	cout<<endl;
	}
	return 0;
}
int main()
{
	char a[200]={0},b[200]={0};
	int i,j,leftpos=0,pos[200],k;
	while(scanf("%s",a)==1)
	{
	printf("%s\n",a);
	j=0;
	for(i=0;i<strlen(a);i++)
		if(a[i]=='('||a[i]==')') {b[j]=a[i];pos[j]=i;j++;}
	leftpos=-1;
	k=0;
	while(k!=strlen(b))
	{
		if(b[k]=='(') leftpos=k;
		if(b[k]==')'&&leftpos!=-1) {a[pos[k]]=' ';a[pos[leftpos]]=' ';b[leftpos]=' ';b[k]=' ';leftpos=-1;k=-1;}
		k++;
	}
	for(i=0;i<strlen(a);i++)
	{
		if(a[i]=='(') printf("$");
		else if(a[i]==')') printf("?");
		else printf(" ");
	}
	printf("\n");
	memset(a,0,200);
	memset(b,0,200);
	}
	return 0;
}
/*
 *??????????.cpp
 *?????
 *????: 2012-12-4
 *??????????????????
 */


char c[110], ch;

void PMP(char c[], int len)
{
	for (int i = 0; i < len; i++)
	{
		cout << c[i];
	}
	cout << endl;
	int flag = 1;

	while (flag)
	{
		flag = 0;
		for (int i = 0; i < len; i++)
		{
			if ((c[i] != '(' ) && (c[i] != ')'))
				c[i] = ' ';
			else if (c[i] == '(')
			{
				for (int j = i + 1; j < len; j++)
				{
					if (c[j] == '(')
						break;
					if (c[j] == ')')
					{
						c[i] = ' ';
						c[j] = ' ';
						flag = 1;
						break;
					}
					else if (j == len - 1)
					{
						c[i] = '$';
					}

				}
			}
		}
	}
	for (int i = 0; i < len; i++)
	{
		if (c[i] == '(')
			c[i] = '$';
		if (c[i] == ')')
			c[i] = '?';
	}

	for (int i = 0; i < len; i++)
		cout << c[i];
	cout << endl;
	return;
}


int main(){
	int len;
	ch = getchar();
	while(ch!='~')
	{
		len = 0;
		while (ch != '\n')
		{
			c[len] = ch;
			len++;
			ch = getchar();
		}
		PMP(c, len);
		ch = getchar();
	}
	return 0;
}
int main()
{
	int n;
	scanf("%d\n",&n);
	char a[200];
	int i;
	for(i=0;i<n;i++)
	{
		scanf("%s",a);
		printf("%s\n", a);
		int j;
		for(j=0;j<strlen(a);j++)
		{
			if(a[j]==')')
			{
				int s;
				for(s=j-1;s>=0;s--)
				{
					if(a[s]=='(')
					{
						a[s]=' ';
						a[j]=' ';
						break;
					}
				}
			}
		}
		for(j=0;j<strlen(a);j++)
		{
			if(a[j]==')')
				printf("?");
			else if(a[j]=='(')
				printf("$");
			else
				printf(" ");
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int a=0,b=0,i,s,j=0,c=0,d=0,l,m,n,k=0,w;
	char str[100];
	
	for(;;)
	{
	gets(str);
	if(feof(stdin)) break;
    l=strlen(str);
	for(i=0;i<=l-1;i++)
	{printf("%c",str[i]);}
	for(i=0;i<=l-1;i++)
	{	
	if(str[i]=='(') {a=a+1; b=1;}
	else if(str[i]==')' && b==0) {str[i]='?';}
	else if(str[i]==')' && b==1 && a<=0) {str[i]='?';}
	else if(str[i]==')' && b==1 && a>0) {a=a-1;}
	}
    a=0;
	b=0;
	for(i=l-1;i>=0;i--)
	{	if(str[i]==')') {a=a+1; b=1;}
	else if(str[i]=='(' && b==0) {str[i]='$';}
	else if(str[i]=='(' && b==1 && a<=0) {str[i]='$';}
	else if(str[i]=='(' && b==1 && a>0) {a=a-1;}
	}
	printf("\n");
        for(i=0;i<=l-1;i++) {if(str[i]!='?' && str[i]!='$') str[i]=' ';}
	for(i=0;i<=l-1;i++) {printf("%c",str[i]);}
        printf("\n");
        }
return 0;
}