semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
main()
{
    char s[101];
    int i,a[101],j,l;
    while((scanf("%s",s))!=EOF)
    {
        j=0;
        puts(s);
        l=strlen(s);
        for(i=0;i<l;i++)
        {
            if(s[i]=='(') a[++j]=i;
            else if(s[i]==')')
            {
                if(j)
                {
                    s[i]=' ';
                    s[a[j]]=' ';
                    j--;
                }
                else s[i]='?';
            }
            else s[i]=' ';
        }
        for(i=1;i<=j;i++) s[a[i]]='$';
        puts(s);
    }
}
int main()
{
	int i, l, flag=0, temp, z;
	char a[1000];
while(gets(a)!=NULL){
	printf("%s\n",a);
	l=strlen(a);
	for(z=1;z<=l;z++)	
	{   flag=0;
		for(i=0;i<l;i++)
	{
		if(a[i]!='(' && a[i]!=')')
		{
			a[i]=' ';
		}
		if(a[i]=='(' )
		{
			flag=1;
			temp=i;
		}
		if(a[i]==')' && flag==1)
		{
			a[i]=' ';
			a[temp]=' ';
			flag=0;
		}
	}}
	for(i=0;i<l;i++)
	{
		if(a[i]=='(' )
			a[i]='$';
		if(a[i]==')' )
			a[i]='?';
	}
    printf("%s\n",a);
	}

	return 0;
}
int main() {
	char s[200],s1[200];
	int i, j;
	int len;
	while(gets(s)!=NULL) {
		len = strlen(s);
		strcpy(s1, s);
		for(i=0; i<len; i++) {
			if(s[i] == ')') {
				for(j=i-1; j>=0; j--) {
					if(s[j] == '(') {
						break;
					}
				}
				if(j >= 0) {
					s[i] = ' ';
					s[j] = ' ';
				} else {
					s[i] = '?';
				}

			} else if(s[i] != '(') {
				s[i] = ' ';
			}
		}
		for(i=0; i<len; i++) {
			if(s[i] == '(') s[i] = '$';
		}
		puts(s1);
		puts(s);
	}
	return 0;
}
int main(){
	char a[101],b[101];
	while(true){
	cin.getline(a,101);
	if(a[0]==0)break;
	cout<<a<<endl;
	int i,j=0,k,l,d;
	for(i=0;i<strlen(a);i++)b[i]=' ';b[i]=0;
	for(i=0;i<strlen(a);i++){
		if(j==0&&a[i]==')')b[i]='?';
		else if(a[i]==')'){
			j--;
			for(k=i;k>=0;k--){
				if(b[k]=='$'){b[k]=' ';break;}
			}
		}
		else if(a[i]=='('){j++;b[i]='$';}
	}
	for(d=0;d<strlen(a);d++)
		if(b[d]!=' ')break;
	for(i=0;i<strlen(a);i++)b[i]=b[i+d];
	for(l=(strlen(a)-1-d);l>=0;l--)
		if(b[l]!=' ')break;
	    b[l+1]=0;
		cout<<b<<endl;
	}
	return 0;
}
int main()
{
	int n,a;
	scanf("%d",&n);
	for(a=1;a<=n;a++)
	{
	char s[101];
	scanf("%s",s);
	int left[101]={0},right[101]={0},i,l=0,r=0;
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]=='(')
		{
			left[l++]=i+1;
		}
		else
		{
			if(s[i]==')')
			{
				if(l!=0)
				{
					l--;
					left[l]=0;
				}
				else
				{
					right[r++]=i+1;
				}
			}
		}
	}
	int le=0,ri=0;
	printf("%s\n",s);
	for(i=0;i<strlen(s);i++)
	{
		if(left[le]==i+1)
		{
			printf("$");
			le++;
		}
		else
		{
			if(right[ri]==i+1)
			{
				printf("?");
				ri++;
			}
			else
			{
				printf(" ");
			}
		}
	}
	printf("\n");
	}
	return 0;
}
int main() {
    char s[1000],t[1000];
    int len;
    int n;
    scanf("%d",&n);
    while (n-->0) {
        scanf("%s",s);
        len = strlen(s);
        memset(t,' ',len);
        t[len] = 0;

        for(int i = 0; i < len; i++) {
            if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
                t[i] = '$';
            }
            char match = ' ';
            if (s[i] == ')') {
                match = '(';
            } else if (s[i] == ']') {
                match = '[';
            } else if (s[i] == '}') {
                match = '{';
            }
            if (match != ' ') {
                for(int j = i-1; j>= 0; j--) {
                    if (t[j] == '$') {
                        if (s[j] == match){
                            t[j] = ' ';
                            match = ' ';
                        }
                        break;
                    }
                }
                if (match != ' ') {
                    t[i] = '?';
                }
            }
        }
        printf("%s\n%s\n",s, t);
    }
}
int main() {
	char s[200],s1[200];
	int i, j;
	int len;
	while(gets(s)) {
		len = strlen(s);
		strcpy(s1, s);
		for(i=0; i<len; i++) {
			if(s[i] == ')') {
				for(j=i-1; j>=0; j--) {
					if(s[j] == '(') {
						break;
					}
				}
				if(j >= 0) {
					s[i] = ' ';
					s[j] = ' ';
				} else {
					s[i] = '?';
				}

			} else if(s[i] != '(') {
				s[i] = ' ';
			}
		}
		for(i=0; i<len; i++) {
			if(s[i] == '(') s[i] = '$';
		}
		puts(s1);
		puts(s);
	

	}
	return 0;
}
int main ()
{
    char a[1000];
    int d[1000],n;
    char b='(',c=')';
    int pp=2;int ww=0;
    for (int pa=10;pa<=pp+9;pa++)
    {
          for (int i=1;i<=999;i++)
          {
              a[i]=getchar();
              if (a[i]=='\n')
              {
                 n=i-1;
                 break;
              }
          }
          if (a[1]=='('&&a[2]==')'&&ww==0)
          {pa=pa-4;ww=1;}
          if (a[1]=='('&&a[3]==')'&&ww==0)
          {pa=pa-3;ww=1;}
          for (int i=1;i<=n;i++)
          d[i]=0;
          for (int i=1;i<=n;i++)
          {
              if (a[i]!=b&&a[i]!=c)
              d[i]=1;
          }
          for (int i=1;i<=n/2;i++)
          {
              for (int j=1;j<=n;j++)
              {
                  if (a[j]==b||d[j]==1)
                  continue;
                  for (int k=j;k>0;k--)
                  {
                      if (a[k]==c||d[k]==1)
                      continue;
                      d[j]=1;
                      d[k]=1;
                      break;
                  }
              }
          }
          for (int i=1;i<=n;i++)
          cout <<a[i];
          cout <<endl;
          for (int i=1;i<=n;i++)
          {
              if (d[i]==1)
              cout <<" ";
              else
              {
                  if (a[i]=='(')
                  cout <<"$";
                  else
                  cout <<"?";
              }
          }
          cout <<endl;
    }
    return 0;
}
int main(){
    int i,j,flag,q;
    char str[101],note[101];
    
    while(scanf("%s",str)!=EOF){
        strcpy(note,str);
        
        for(i=0;i<strlen(note);i++){
            if((note[i]>='a'&&note[i]<='z')||(note[i]>='A'&&note[i]<='Z'))
                note[i]=' ';
        }
        
        for(i=0;i<strlen(note);i++){
            flag=0;
            if(note[i]==')'){
                for(j=i-1;j>=0;j--){
                    if(note[j]=='('){
                        flag=1;
                        note[j]=' ';
                        note[i]=' ';
                        break;
                    }
                }
                if(flag==0)
                    note[i]='?';                
            }                           
        }
        
        for(i=0;i<strlen(note);i++){
            if(note[i]=='(')
                note[i]='$';                            
        }
        
        puts(str);
        puts(note);        
    }
    
    scanf("%d",&q);
    return 0;
}
int main()
{
	int n;
	scanf("%d",&n);
	int i,j,k,x;
	char s[200],a[200];
	for(i=0;i<n;i++)
	{
		scanf("%s",s);
		printf("%s\n",s);
		
		for(j=0;j<strlen(s);j++)
		{
			if(s[j]=='(')
				a[j]='$';
			else if(s[j]==')')
				a[j]='?';
			else
				a[j]=' ';
		}	
		
			for(k=0;k<strlen(s);k++)
			{
				if(a[k]=='?')
				{
					for(x=k-1;x>=0;x--)
					{
						if(a[x]=='$')
						{
							a[k]=' ';
							a[x]=' ';
							break;
						}						     
					}
				}
			}
			int w;
			for(w=0;w<strlen(s);w++)
			{
	         printf("%c",a[w]);
			}
		
	
		printf("\n");
	}
	return 0;
}
int main()
{
	int n,i,j,m,p,l;
	char s[100][100];
	int a[100]={0};
	scanf("%d",&n);
	getchar();
	for(i=1;i<=n;i++)
	{
		gets(s[i]);
		l=strlen(s[i]);
		for(j=0;j<l;j++)
		{
			a[j]=0;
		}
		for(j=0;j<l;j++)
		{
			if(s[i][j]=='(')
				a[j]=1;
			if(s[i][j]==')')
				a[j]=2;
		}
		for(j=0;j<l;j++)
		{
			if(a[j]==2)
			{
				for(m=j;m>=0;m--)
				{
					if(a[m]==1)
					{
						a[m]=0;
						a[j]=0;
						break;
					}
				}
			}
		}
		puts(s[i]);
		for(j=0;j<l;j++)
		{
			if(a[j]==1)
			{
				printf("$");
			}
			if(a[j]==2)
			{
				printf("?");
			}
			if(a[j]==0)
			{
				printf(" ");
			}
		}
		printf("\n");
	}
	}
int main()
{
	int n;
	char str1[120];
	char str[120];
	cin>>n;

	for (int i=1;i<=n;i++)
	{
		memset(str,'\0',sizeof(str));
		cin>>str1;
		strcpy(str,str1);

		for ( int len=1;len<strlen(str);len++)
		{
			for ( int j=0;j<strlen(str)-len;j++)
			{
				int k=j+len;
				if ( str[j]=='(' && str[k]==')')
				{
					str[j]='0';
					str[k]='0';
				}
			}
		}

		for ( int i1=0;str[i1]!='\0';i1++)
		{
			if ( str[i1]=='(')
				str[i1]='$';
			else if ( str[i1]==')')
				str[i1]='?';
			else str[i1]=' ';
		}
		cout<<str1<<endl;
		cout<<str<<endl;
	}
	return 0;
}
int num;
char right(char c)
{ char ch;
    if(c!='('&&c!=')')
       ch=' ';
    else if(c==')')
     { if (num==0) ch='?';
       else
        { num--;
          ch=' ';
        }
     }
    else
     { num++;
       ch=c;
     }
    return ch;
}
char left(char c,char a)
{ char ch;
  if(a==' '||a=='?')
   { ch=a;
     if(c==')')num++;
   }
  else if (num==0) ch='$';
       else
        { num--;
          ch=' ';
        }
  return ch;
}
main()
{ int i,n;
  char s[101],a[101];
  scanf("%d",&n);
  while(gets(s))
   { num=0;
     for(i=0;i<strlen(s);i++)
       a[i]=right(s[i]);
     num=0;
     for(i=strlen(s)-1;i>=0;i--)
       a[i]=left(s[i],a[i]);
     puts(s);
     for(i=0;i<strlen(s);i++)
       printf("%c",a[i]);
       printf("\n");
   }
  return 0;
}
char s[105];
int len;
int f(int b) {
	for (int i = b + 1; i < len; i++) {
		if (s[i] == ')') {
			s[b] = '$';
			s[i] = '?';
			return i;
		} else if (s[i] == '(') {
			i = f(i);
		}
	}
	return len - 1;
}
int main() {
	while (cin >> s) {
		len = strlen(s);
		cout << s << endl;
		for (int i = 0; i < len; i++) {
			if (s[i] == '(')
				i = f(i);
		}
		for (int i = 0; i < len; i++) {
			if (s[i] == '(')
				cout << '$';
			else if (s[i] == ')')
				cout << '?';
			else
				cout << ' ';
		}
		cout << endl;
	}
	return 0;
}
int main()
{
	char s[50][105]={'\0'},a;
	int i,j,k,count,cleft,cright;
	i=j=0;
	while((a=cin.get())!=EOF)//????? ??????????
	{
		if(a!='\n')
		{
			s[i][j]=a;
			j++;
		}
		else if(a=='\n')
		{
			i++;
			j=0;
		}
	}
	count=i;//???????
	cleft=cright=0;//????????????
	for(i=0;i<count;i++)
	{
			cout<<s[i]<<endl;
		for(j=0;j<strlen(s[i]);j++)//????????
		{
			if(s[i][j]=='(')
				cleft+=1;
			else if(s[i][j]==')')
				cright+=1;
			if(cright>cleft)
				{s[i][j]='?';
				cright-=1;//??????cright?1????????????
				}

		}
		cleft=cright=0;//?????????????
		for(j=strlen(s[i])-1;j>=0;j--)
		{
			if(s[i][j]=='(')
				cleft+=1;
			else if(s[i][j]==')')
				cright+=1;
			if(cright<cleft)
				{s[i][j]='$';
				cleft-=1;//??????cleft?1????????????
				}
		}
		for(j=0;j<strlen(s[i]);j++)
			if(s[i][j]!='?'&&s[i][j]!='$')
				s[i][j]=' ';
		if(i==count-1)
		cout<<s[i];
		else 
			cout<<s[i]<<endl;
	}

return 0;
	
		}
int main()
{
	char s[1000],temp[1000];
	int b[1000];
	int i,n=0,m=0,len,j;
	memset(temp,2,sizeof(temp));
	while(1)
	{m=0;n=0;
	  scanf("%s",s);
	  if(strcmp(temp,s)==0)
		  break;
	  else strcpy(temp,s);
 	memset(b,0,sizeof(b));
	len=strlen(s);
	for(i=0;i<len;i++)
	{  
		if(s[i]=='(') 
	    n++;
		else if(s[i]==')'&&n>0)
		{
			n--;
			b[i]=1;
		}
	}
	for(j=len-1;j>=0;j--)
	{
		if(s[j]==')') m++;
		else if(s[j]=='('&&m>0) 
		{
			m--;
			b[j]=1;
		}
	}
	printf("%s\n",s);
	for(i=0;i<len;i++)
	{
		if(b[i]==0&&s[i]==')')
			printf("?");
		else if(b[i]==0&&s[i]=='(')
			printf("$");
		else printf(" ");
	}
	printf("\n");
	}
	return 0;
}
/*
 * match (.cpp
 *??:????????
 *  Created on: 2012-12-1
 *      Author: ???
 */



char sign[101];              //????,??
int lf[100];                  //????lf,??(???
int rt[100];                  //????rt,??)???
int len;                     //??????

void match();                //????

int main ()
{
	while(cin.getline(sign,101))
	{
	len=strlen(sign);        //???
	cout<<sign<<endl;        //??????
	int i=0;
	for(i=0;i<100;i++)        //???
		{
		lf[i]=-1;
		rt[i]=-1;
		}
	match();                 //????match
	}
	return 0;
}

void match()
{
	int i=0,j=0,n1=0,n2=0;  //(,)???
	char result[len];
       for(i=0;i<len;i++)
    	   result[i]=' ';  //???
	for(i=0;i<len;i++)     //??(,)???
	{
		if(sign[i]=='(')
			{
			lf[n1]=i;
			n1++;
			}
		if(sign[i]==')')
		    {
			rt[n2]=i;
			n2++;
		    }
	}
	for(i=n1-1;i>=0;i--)   //??????
		for(j=0;j<n2;j++)
		if(lf[i]<rt[j])
		{
			lf[i]=-1;
			rt[j]=-1;
			break;
		}
	for(i=0;i<n1;i++)      //?????
		if(lf[i]>=0)
			result[lf[i]]='$';
	for(j=0;j<n2;j++)
		if(rt[j]>=0)
			result[rt[j]]='?';
	for(i=0;i<len;i++)     //??
		cout<<result[i];
	    cout<<endl;
}
main()
{
    char c[101];
    int h,i,j,k,n,a[101],b[101];
    while((gets(c))!='\0')
    {
        j=0;k=0;
        puts(c);
        n=strlen(c);
        for(i=0;i<n;i++)
        {
            if((c[i]!='(')&&(c[i]!=')')) c[i]=' ';
            else if(c[i]=='(') {j++;a[j]=i;}
            else {k++;b[k]=i;}
        }
        for(h=1;h<=k;h++)
        {
            for(i=j;i>=1;i--)
            {
                if(a[i]<b[h]) {c[b[h]]=' ';c[a[i]]=' ';b[h]=-1;a[i]=101;break;}
            }
        }
        for(i=1;i<=j;i++)
        {
            if(a[i]!=101) c[a[i]]='$';
        }
        for(h=1;h<=k;h++)
        {
            if(b[h]!=-1) c[b[h]]='?';
        }
        puts(c);
    }
    return 0;
}
int main()
{ 
  
  char a[200],b[200];
  int c[200];
  int i,j,k,t,m,n;
  while(cin>>a)
  {
	  
	  k=strlen(a);m=0;n=0;
	  for(i=0;i<k;i++)
	  {
		  cout<<a[i];
		  if(i==k-1) cout<<endl;
		  if(a[i]!='('&&a[i]!=')')
			  b[i]=' ';
		  else if(a[i]==')')  {c[m]=i;m++;}//cout<<i<<" ";
	  }
	n=m;//cout<<n<<endl;
	for(i=0;i<n;i++){
       char *p=&a[c[i]];t=0;
	   for(j=0;j<=c[i];j++)
		   if(*p=='(') {t=1;b[c[i]-j]=' ';b[c[i]]=' ';a[c[i]-j]=' ';break;}
		   else p--;
       if(t==0) b[c[i]]='?';
	   }
	for(i=0;i<k;i++)
	{if(a[i]=='(') b[i]='$';
	cout<<b[i];if(i==k-1)cout<<endl;}
  }
return 0;
}
char str[101], bracket[101];
int len;
void match(int a);

int main()
{
    while (cin.getline(str, 101))
    {
        len = strlen(str);
        for (int i = 0; i < len; i++)
            if (str[i] == '(') bracket[i] = '$';
            else if (str[i] == ')') bracket[i] = '?';
            else bracket[i] = ' ';
        match(1);
        for (int i = 0; i < len; i++)
            cout << str[i];
        cout << endl;
        for (int i = 0; i < len; i++)
            cout << bracket[i];
        cout << endl;
    }

    return 0;
}  
        
void match(int a)
{
     if (a == len) return;
     int b = a - 1;
     if (bracket[a] == '?')
     {
         while (bracket[b] == ' ')
         {
             if (b == 0) 
             {
                 match(a + 1);
                 return;
             }
             b--;
         }
         if (bracket[b] == '?') 
         {
             match(a + 1);
             return;
         }
         bracket[b] = ' ';
         bracket[a] = ' ';
         match(a + 1);
     }
     else match(a + 1);
}
int main()
{
	char str[200];
	int i,j,k,m,n;
	int flag=0;
	int left[100],l=1;
	while(cin>>str)
	{
		cout<<str<<endl;
		flag=0;l=1;
		for(n=1;n<100;n++)
			left[n]=0;		
		for(i=0;str[i]!='\0';i++)
		{
			if(str[i]=='(')
			{
				left[l]=i;
				l++;
			}
			if(str[i]!='('&&str[i]!=')')str[i]=' ';
		}
		for(j=l-1;j>=1;j--)
		{
			flag=0;
			for(k=left[j]+1;str[k]!='\0';k++)
			{
				if(str[k]==')')
				{
					str[left[j]]=' ';
					str[k]=' ';
					flag=1;
					break;
				}
			}
			if(flag==0)str[left[j]]='$';
		}
		for(m=0;str[m]!='\0';m++)
			if(str[m]==')')str[m]='?';
		cout<<str<<endl;
	}
	return 0;
}
/*
  Name: ??????
  Copyright: 
  Author: 
  Date: 20/11/12 21:21
  Description: ????????????100?????????????????
  ????????????????????????????????????
  ????????????????????????????????????
  ????????????????????????????????????
  ??"$"??,?????????"?"?? 
*/
int main()
{
   char str[100][100]={'\0'};
   int m=0;
   int i,j,t;//???? 
   int a=0,b=0;//??????? 
   int c[100]={0};      
      
   while(cin>>str[m])
   {
      
           for(j=0;j<strlen(str[m]);j++)
           {
              if(str[m][j]=='(')
              {
                 if(j==strlen(str[m])-1) 
                    c[j]=1; 
                 else
                 { 
                     for(t=j;;t++)
                     {
                        if(str[m][t]=='(')
                           a++;
                        else if(str[m][t]==')') 
                           b++;
                        if(t==strlen(str[m])-1||(a==b&&a!=0))
                            break; 
                     }
           
                        if(a>b)// (????????????? 
                           c[j]=1;
                        a=b=0; 
                 }                   
              }
              else if(str[m][j]==')')
              {
                 if(j==0)
                    c[j]=2;
                 else
                 { 
                     for(t=j;;t--)
                     {
                        if(str[m][t]=='(')
                           a++;
                        else if(str[m][t]==')') 
                           b++;
                        if(t==0||(a==b&&a!=0)) 
                           break;                        
                     }
                    
                     if(a<b)//????????? 
                           c[j]=2;
                     a=b=0; 
                 }                        
              }
              else
                 continue;
           }
          
           cout<<str[m]<<endl;//????????
           
           for(j=0;j<=strlen(str[m])-1;j++)
           {
              if(c[j]==0)
                 cout<<' ';// 
              else if(c[j]==1)
                 cout<<'$';// ???? 
              else if(c[j]==2)
                 cout<<'?';// ???? 
            }  
            cout<<endl;
              
               a=0;
               b=0; 
               for(j=0;j<100;j++)//?? 
                  c[j]=0;            
      
           m++; 
                     
   }
   return 0;  
}
char s2[101];

int ma(char s[],int p,int le)
{
	int ri;
	if (s[p]==0)
	{
		s2[p]=0;
		return 0;
	}
	else
	{
		if (s[p]=='(')
		{
			ri=ma(s,p+1,le+1);
			if (ri)
			{
				s2[p]=' ';
				return ri-1;
			}
			else
			{
				s2[p]='$';
				return 0;
			}
		}
		else if (s[p]==')')
		{
			if (le)
			{
				s2[p]=' ';
				return ma(s,p+1,le-1)+1;
			}
			else
			{
				s2[p]='?';
				return  ma(s,p+1,0)+1;
			}
		}
		else
		{
			s2[p]=' ';
			return ma(s,p+1,le);
		}
	}
}

int main()
{
	int n;
	scanf("%d\n",&n);
	char s1[101];
	int t;
	while(n)
	{
		n=n-1;
	gets(s1);
	puts(s1);
	t=ma(s1,0,0);
	printf("%s",s2);
	if (n) printf("\n");
	}
	return 0;
}
int deal();
char ori[101]={"\0"};
int out[101]={0};
int main()
{
	int i;
	while(cin.getline(ori,101))
	{
		deal();
		cout<<ori<<endl;
		for (i=0;ori[i]!='\0';i++)
		{
			if (out[i]==1)
				cout<<'$';
			else if (out[i]==2)
				cout<<'?';
			else
				cout<<' ';
		}
		cout<<endl;
	}
	return 0;
}
int deal()
{
	int i,j;
	for (i=0;ori[i]!='\0';i++)
	{
		if (ori[i]=='(')
			out[i]=1;
		else if (ori[i]==')')
			out[i]=2;
		else
			out[i]=0;
	}
	for (i=0;ori[i]!='\0';i++)
	{
		if (out[i]==2)
		{
			for (j=i;j>=0;j--)
			{
				if (out[j]==1)
				{
					out[i]=0;
					out[j]=0;
					break;
				}
			}
		}
	}
	return 0;
}
int main()
{
	char a[110];
	int l,i,j,p=0;
	while(scanf("%s",a)!=EOF) 
	{
	
		printf("%s\n",a);
		l=strlen(a);
		for(i=0;i<l;i++)
		{
			p=0;
			if(a[i]=='(')
			{
				for(j=i;j<l;j++)
				{
					if(a[j]=='(')
						p++;
					if(a[j]==')')
						p--;
					if(p==0)
						break;
				}
				if(p!=0)
					a[i]='$';
				else
					a[i]=' ';
			}
		}
		for(i=l-1;i>=0;i--)
		{
			p=0;
			if(a[i]==')')
			{
			
				for(j=i;j>=0;j--)
				{
					
					if(a[j]==')')
						p++;
					if(a[j]==' ')
						p--;
					if(p==0)
					{break;}
				}
				if(p!=0)
					a[i]='?';
				else
					a[i]=' ';
			}
		}
		for(i=0;i<l;i++)
		{
			if(a[i]!='?'&&a[i]!='$')
				a[i]=' ';
		}


		puts(a);
	} 
	return 0;
}
void main(){
	char b[100];
	int i,j,t,l,k=2;
	while(1){
		char a[100];
		a[0]='\0';
		scanf("%s",a);
		l=strlen(a);
		if(l==0)
			break;
		printf("%s\n",a);
		for(i=0;i<l;i++){
			if(a[i]=='(')
				b[i]='$';
			else if(a[i]==')')
				b[i]='?';
			else
				b[i]=' ';
		}
		b[l]='\0';
		for(i=0;i<l;i++){
			if(a[i]=='('){
				t=0;
				for(j=i+1;j<l;j++){
					if(a[j]=='(')
						t--;
					if(a[j]==')')
						t++;
					if(t==1){
						b[i]=b[j]=' '; 
						a[i]=a[j]='a';
						break;
					}
				}
			}
		}
		for(i=0;i<l;i++){
			printf("%c",b[i]);
		}
		printf("\n");
	}
}
int main()
{
	char c[105]={0};
	while(cin>>c)
	{


		int  a[105]={0};

		int n,i,j;
		n=strlen(c);
		for(i=0;i<n;i++)
			a[i]=1;
		for(i=n-1;i>=0;i--)
		{
			if(c[i]=='(')

			{

				for(j=i;j<n;j++)
				{
					if((c[j]==')')&&(a[j]!=0))
					{
						a[j]=0;
						a[i]=0;
						break;

					}

				}

			}

		}
		for(i=0;i<n;i++)
			cout<<c[i];
		cout<<endl;

		for(i=0;i<n;i++)
		{
			if((c[i]=='(')&&(a[i]==1))

				cout<<"$";
			if((c[i]==')')&&(a[i]==1))
				cout<<"?";
			if((c[i]!='(')&&(c[i]!=')')&&(c[i]!='\0'))
				cout<<" ";
			if((c[i]=='(')&&(a[i]==0))
				cout<<" ";
			if((c[i]==')')&&(a[i]==0))
				cout<<" ";


		}

		cout<<endl;
	}


	
	return 0;

}
/*3704:??????*/ 



void del(char a[],int n)//????????????? 
{
	int i=0;
	while(a[i]!=')' && i<n) i++;
	int j;
	j=i-1;
	while(a[j]!='(' && j>=0) j--;
	if(i<n && j>=0)
	{
		a[i]=' ';a[j]=' ';
		del(a,n);
	}
	else
	{
		if(i>=n && j>=0) a[j]='$';
		if(j<0 && i<n) a[i]='?';
		if(!(i>=n && j<0)) del(a,n);
	}
	
}

int main()
{
	while(!cin.eof())
	{
		char a[101];
		cin.getline(a,101);
		cout<<a<<endl;
		int n,i;
		n=strlen(a);
		del(a,n);
		for(i=0;i<n;i++)
		    switch(a[i])
		    {
		    	case '$':
		    	case '?':cout<<a[i];break;
		    	default:cout<<' ';
		    }
		cout<<endl;
	}
	return 0;
}
int main()
{
    int n;
    for(scanf("%d%*c",&n);n>0;n--)
    {
        char a[101];
        gets(a);
        puts(a);
        int i,j,k,l=strlen(a);
        do
        {
        for(j=0;j<l;j++)
            if(a[j]==')')break;
        if(j!=l)
        {
            for(k=j;k>=0;k--)
                if(a[k]=='(')break;
            if(k<0)a[j]='?';
                else a[j]=a[k]=' ';
        }
        }while(j!=l);
        for(i=0;i<l;i++)
            if(a[i]=='(')a[i]='$';
            else if(a[i]!='?')a[i]=' ';
        puts(a);
    }
    return 0;
}
void pipei(char str[])
{
	int i,la,stack[100],k=0;
	char res[101];
	la=strlen(str);
	for(i=0;i<la;i++) res[i]=' ';
	res[la]='\0';
	for(i=0;i<la;i++)
	{
		if(str[i]==')')
		{
			if(k==0||stack[k-1]>0)
				stack[k++]=i+1;
			else k--;
		}
		else if(str[i]=='(')
			stack[k++]=-(i+1);
	}
	for(i=0;i<k;i++)
	{
		int a=stack[i];
		if(a<0) res[-a-1]='$';
		else res[a-1]='?';
	}
	cout<<str<<endl;
	cout<<res<<endl;
}
int main()
{
	int n,i;
	cin>>n;
	cin.get();
	char str[101];
	for(i=0;i<n;i++)
	{
		
        cin.getline(str,101);
		pipei(str);
		
	}
	return 0;
}
char a[101];

int main()
{
	int i,n,j,k,m,b;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
			for(j=0;j<101;j++)
			a[0]='\0';
			scanf("%s",a);
			printf("%s\n",a);
			m=strlen(a);
			for(j=m-1;j>=0;j--)
			{
				if(a[j]=='(')
				{
					if(j==m-1)
					{
						a[j]='$';
						continue;
					}
					b=1;
					for(k=j+1;k<m;k++)
					{
						
						if(a[k]==')')
						{
							a[j]=' ';
							a[k]=' ';
							b=0;
							break;
						}
						
					}
					if(b)
					a[j]='$';
				}
			}
			for(j=m-1;j>=0;j--)
			{
				
				if(a[j]==')')
				a[j]='?';
				else if(a[j]!='$')
				a[j]=' ';
			}
			printf("%s\n",a);
			
	}
	return 0;
}
char a[101],b[101];
int l,c[101];
int main()
{
	int i,j;
	while(cin.getline(a,101))
	{
		j=0;
		memset(c,0,sizeof(c));
		l=strlen(a);
		for(i=0;i<l;i++)
		{
			if(a[i]=='(')
			{
				b[i]='$';c[j]=i;
				j=j+1;
			}
			else if(a[i]==')')
			{
				if(j>=1)
				{
					b[c[j-1]]=' ';b[i]=' ';
					j=j-1;
				}
				else
				{
					b[i]='?';
				}
			}
			else
			{
				b[i]=' ';
			}
		}
		b[l]='\0';
		cout<<a<<endl;
		cout<<b<<endl;
	}
	return 0;
}
int main()
{
	
	char c[200],s[200];
	
	while(gets (c))
	{
    int a[200],tt = 0;
	puts(c) ;
	memset (s, 0, sizeof s) ;
	for(int i=0;i<strlen(c);i++)
		if (c[i] == '(')
			a[++tt] = i ;
		else if (c[i] == ')')
			if (!tt) s[i] = '?' ;
			else s[a[tt -- ]] = s[i] = ' ' ;
		else s[i] = ' ' ;
	for (int i = 1; i <= tt; i ++ ) s[a[i]] = '$' ;
	puts (s) ;
	}

	return 0;
}