semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
main()
{
      int n,i,j,k,count,mz;
      char a[200]={'\0'},b[200];
scanf("%d\n",&n);
      for(i=0;i<n;i++)
      {
                      count=0;
                      for(j=0;j<200;j++)
                      {
                                        a[j]='\0';
                                        b[j]='\0';
                      }
                      gets(a);
                      strcpy(b,a);
                      for(j=0;j<200;j++)
                      {
                                        if(a[j]=='\0')break;
                                        count++;
                      }
                      for(j=count-1;j>=0;j--)
                      {
                                           if(b[j]=='(')
                                           {
                                                        mz=0;
                                                        for(k=j;k<count;k++)
                                                        {
                                                                            if(b[k]==')')
                                                                            {
                                                                                         b[k]=' ';
                                                                                         b[j]=' ';
                                                                                         mz=1;break;
                                                                            }
                                                        }
                                                        if(mz==0)b[j]='$';
                                           }
                      }
                      for(j=0;j<count;j++)
                      {
                                          if(b[j]==')')b[j]='?';
                      }
                      for(j=0;j<count;j++)printf("%c",a[j]);
                      printf("\n");
                      for(j=0;j<count;j++)
                      {
                                          if(b[j]!='$' && b[j]!='?')printf(" ");
                                          else printf("%c",b[j]);
                      }
printf("\n");
      }
      }
int main()
{
	int i,j,k,p,m;
	char a[200],b[200],c[200];
	i=0;
	while(gets(a))
	{
		puts(a);
		k=0;
		for(i=0;i<strlen(a);i++)
		{
			if(a[i]=='(')
				b[i]='$';
			else if(a[i]==')')
				b[i]='?';
			else
				b[i]=' ';
		}
		b[strlen(a)]='\0';
		c[strlen(a)]='\0';
		for(i=0;i<strlen(a);i++)
		{
			c[i]=b[i];
		}
		for(p=0;p<strlen(a);p++)
		{
			k=0;
		for(i=0;i<strlen(a);i++)
		{
			if(b[i]==' ')
				continue;
			else if(b[i]=='$')
			{
				k++;
				for(j=i+1;j<strlen(a);j++)
				{
					if(b[j]==' ')
						continue;
					else if(b[j]=='?')
					{
						b[i]=' ';
						b[j]=' ';
						c[i]=' ';
						c[j]=' ';
						break;
					}
					else if(b[j]=='$')
						break;
				}
			}
			else if(b[i]=='?'&&k==0)
				c[i]='?';
		}
		}
		puts(c);
		continue;
	}
	return 0;
}
int main()
{  
    char line[101], label[101];   //label???????
    int  pos[101];                        //pos???????????
    
	while (	cin.getline(line, 101))
	{  
		int  left = 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 == 0)		//????????????????
					label[i]='?';   	//?????????
				else
					left--;				 //???????????????
	    }
		
		for(int i = 1; i <= left; i++)
			label[pos[i]] = '$';             //??????????$
		
		label[len] = '\0';                                  //???????
		cout << line << endl;	
		cout << label << endl;  
	}
	
	return 0;
}
void course(char a[],int n)
{
    int i,j,k;
    for(k=0;k<n;k++)
    {
        if(a[k]==')')
        a[k]='?';
        else if(a[k]=='(')
        a[k]='$';
        else a[k]=32;
    }
    for(k=0;k<n;k++)
    {
        for(i=0;i<n-1;i++)
        {
            if(a[i]=='$')
            {
                for(j=i+1;j<n;j++)
                {
                    if(a[j]=='$')
                    break;
                    else if(a[j]=='?')
                    {
                        a[i]=32;
                        a[j]=32;
                        break;
                    }
                    else continue;
                }
            }
        }
    }
}
int main()
{
    char a[10000];
    int n;
    while(scanf("%s",a)!=EOF)
    {
        puts(a);
        n=strlen(a);
        course(a,n);
        puts(a);
    }
    return 0;
}
int main()
{
 char a[101];
 int i,n,p,q;
 while(cin.getline(a,101))
 {   int b[101]={0};	 
	 p=0;
     q=0;
	 n=strlen(a);
     for(i=0;i<=n-1;i++)
	 {
		 if(a[i]==')')
		 {
			 q++;
		 
			 if(q>p)
		
			 {
			 
				 b[i]=1;
				 q=q-1;
		 
			 }
		 }
		 if(a[i]=='(')
		 {
			 p++;
		 }

	 }
	 p=0;
	 q=0;
	 for(i=n-1;i>=0;i--)
	 {
		 if(a[i]==')')
		 {
			 q++;
		 }
		 if(a[i]=='(')
		 {
			 p++;

			 if(p>q)
		
			 {
			 
				 b[i]=2;
				 p=p-1;
		
			 }
		 }
		 
	 }
	 for(i=0;i<=n-1;i++)
	 {
		 cout<<a[i];
	 }
	 cout<<endl;
	 for(i=0;i<=n-1;i++)
	 {
		 if(b[i]==0)
		 {
			 cout<<" ";
		 }
		 if(b[i]==1)
		 {
			 cout<<"?";
		 }
		 if(b[i]==2)
		 {
			 cout<<"$";
		 }
	 }
	 cout<<endl;
 }
 return 0;
}
int main()
{
	char a[200];
	while(cin.getline(a, 200))
	{
		int n = strlen(a);
		int k;
		cout<<a<<endl;
		for(int i = 0; i < n; i++)
		{
			if(a[i] == '?')
				a[i]=' ';
			if(a[i] == '$')
				a[i]=' ';
			if(a[i] == ')')
			{
				for( k = i-1; k>=0;k--)
				{
					if(a[k] == '(')
					{
						a[i] = ' ';
						a[k] = ' ';
						break;
					}
				}
				if(k < 0)
					a[i] = '?';
			}
		}
		for(int i = 0; i < n; i++)
		{
			if(a[i] == '(')
				a[i] = '$';
			else
				if(a[i] != '?')
					a[i] = ' ';
		
		}
		cout<<a<<endl;
	
	}
    return 0;
}
int main()
{
	char word[200] = {'\0'};//??????
	int left[200] = {0};//??????????
	int i = 0, k = 0;
	while (cin.getline(word, 200))
	{
		for (i = 0; word[i]; i ++)//???
			cout << word[i];
		cout << endl;
		for (i = 0; word[i]; i ++)//????
		{
			if (word[i] == '(')//??????????left?
			{
				left[k] = i;
				k ++;
				word[i] = '$';
			}
			else if (word[i] == ')')//?????left????????
			{
				if (k)
				{
					k --;
					word[left[k]] = ' ';
					word[i] = ' ';
				}
				else
					word[i] = '?';
			}
			else//???????
				word[i] = ' ';
		}
		for (i = 0; word[i]; i ++)//???
			cout << word[i];
		cout << endl;
		k = 0;
		memset(word, '\0', sizeof(word));
	}
	return 0;
}
int main()
{
	while(1)
	{
		char	s[101], zhui = '#';
		int	count[101] = {0};//count = 1????count = 2??? 
		int	i = 0, j = 0, sl = 0, p = 0, q = 0;
		for (i = 0; i < 101; i ++)
		{s[i] = '#';}//??? 
	
		//??
		cin.getline(s, 101); 
		sl = strlen(s);
		if(s[0] == '\0'){break;}//??????????? 	
		//???
		for (i = 0; i < sl; i ++)
		{
			if(s[i] == '(')	
			{
				count[i] = 1;
			}
			else if(s[i] == ')')
			{
				count[i] = 2;
			}
			else{continue;}
		}
		 
		//??????????0 
		for (i = sl - 1; i >= 0; i --)
		{
			if(count[i] == 1)
			{
				for (j = i + 1; j < sl; j ++)
				{
					if(count[j] == 2)
					{
						count[i] = 0;
						count[j] = 0;
						break;
					} 
				}
			}
		}
	
		//???0?????????;
		int	dingzuo[101] = {0};
		int	dingyou[101] = {0};
		int	flag = 0;//???????
		int	count0 = 0;
		for (i = 0; i < sl; i ++)
		{
			if(count[i] == 1)
			{
				dingzuo[i] = 1;
				flag = 1;
				count0 ++;
			}
			else if(count[i] == 2)
			{
				dingyou[i] = 1;
				flag = 1;
				count0 ++;
			}
			else
			{continue;}
		} 
	
		//?? 
		int	k = count0;
		for (i = 0; i < sl; i ++)
		{cout << s[i];}//??????? 
		if(flag == 1)
		{
			cout << endl;
			for (i = 0; i < sl; i ++)
			{
				if(dingzuo[i] == 1)
				{
					cout << "$";
					count0 --;
				}
				else if(dingyou[i] == 1)
				{
					cout << "?";
					count0 --;
				}
				else
				{
					if((count0 > 0) && (count0 < k))
					{cout << " ";}
				}
			}
			cout << endl;
		}
		else
		{cout << endl;}
	}

return 0;
}
int main()
{
    char c[100][110];
    int i,j,k,n;
    void pipei(char c[110]);
    int print(char c[110]); 
    scanf("%d\n",&n);
    for(i=0;i<n;i++)
    {
                    gets(c[i]);
    }
    for(i=0;i<n;i++)
    {
                    printf("%s\n",c[i]);
                    pipei(c[i]);
    }
    return 0;
}

void pipei(char c[110])
{
     int p1=0,p2=0,tihuan=0,i,j,k;
     for(i=0;i<strlen(c);i++)
     {
                             if(c[i]!='(')
                             {
                                          p1+=1;
                                          p2+=1;
                             }
                             else break;
     }
     if(p1==strlen(c)) 
     {
                       print(c);
     }
     else
     {
         while(p1<strlen(c))
         {
                            if(c[p1]=='(')
                            {
                                          p2=p1;
                                          p1+=1;
                            }
                            else if(c[p1]==')')
                            {
                                 c[p1]='A';
                                 c[p2]='A';
                                 tihuan+=1;
                                 break;
                            }
                            else
                            {
                                p1+=1;
                            }
         }
         if(tihuan==0) 
         {
                       print(c);
         }
         else pipei(c);
     }
}

int print(char c[110])
{
     int i;
     for(i=0;i<strlen(c);i++)
     {
                             if(c[i]=='(') printf("$");
                             else if(c[i]==')') printf("?");
                             else printf(" ");
     }
     printf("\n");
     return 0;
}
int main()
{
	int n,i,j,k,m;
	char a[101];
	scanf("%d",&n);
	for(j=0;j<n;j++)
	{
		for(i=0;i<101;i++)
		{
			a[i]=0;
		}
		scanf("%s",a);
		printf("%s\n",a);
		m=strlen(a);
		for(i=0;i<m;i++)
		{
			if((a[i]!='(')&&(a[i]!=')'))
			{
				a[i]=' ';
			}
		}
		for(i=0;i<m;i++)
		{
			if(a[i]==')')
			{
				for(k=i;k>=0;k--)
				{
					if(a[k]=='(')
					{
						a[i]=' ';
						a[k]=' ';
						break;
					}
				}
				if(k==-1) a[i]='?';
			}
		}
		for(i=0;i<m;i++)
		{
			if(a[i]=='(') a[i]='$';
		}
		printf("%s\n",a);
	}
	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;
  char s[101],a[101];
  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;
}
int main()
{
    for(;;)
    {
        char a[101]={0},b[101]={0};      
        int l=0,c[100]={0},m;                 
        gets(a);                              
        if(a[0]==0)
        break;                    
        for(int i=0;i<101;i++)                    
        {
            if(a[i]!=0)
            {
                if(a[i]=='(')                 
                {    int p=0;
                    c[i]=-1;
                    b[i]='$';
                }
                else if(a[i]==')')            
                {  int k=0;
                    c[i]=1;
                    b[i]='?';
                }
                else b[i]=' ';               
            }
            else                                 
            {
                l=i;
                break;
            }
        }

        cout<<endl;
        for(int i=0;i<l;i++)               
            if(c[i]==-1)
                for(int j=i,sum=0;j<l;j++)
                {
                    sum=sum+c[j];

                    if(sum==0)                  
                    {
                        b[i]=' ';
                        b[j]=' ';
                        break;
                    }
                }
        cout<<a<<endl;
        cout<<b<<endl;
    }
    return 0;
}
int main()
{
	int i=0,j=0,m=0,n=0,k=0;
	char s[105];
	while(cin.getline(s,105,'\n'))
	{
		int zuo[100],you[100],flag[105]={0};
		char a[105];
		for(i=0;s[i]!='\0';i++)
		{
			a[i]=' ';
		}
		a[i]='\0';
		m=0;
		n=0;
		for(j=0;j<i;j++)
		{
			if(s[j]=='(')
				zuo[m++]=j;
			if(s[j]==')')
				you[n++]=j;
		}
		for(j=0;j<n;j++)
		{
			for(k=you[j]-1;k>=0;k--)
			{
				if(s[k]=='('&&flag[k]==0)
				{  
					flag[k]=1;
					flag[you[j]]=1;
					break;
				}
			}
		}
		for(k=0;k<i;k++)
		{
			if(flag[k]==0&&s[k]=='(')
				a[k]='$';
			if(flag[k]==0&&s[k]==')')
				a[k]='?';
		}
		cout<<s<<endl;
		cout<<a<<endl;
	}
	return 0;
}
int match (int);
int count (int);
int match (int,int,int,int);
char a[50][105],b[50][105]={0};
int num[50]={0};
int main ()
{
	for (int i=0;;i++){
		cin.getline (a[i],101);
		count (i);
		match (i);
		cout<<a[i]<<endl;
		cout<<b[i]<<endl;
	}
	return 0;
}
int count (int m)
{
	for (int i=0;a[m][i]!=0;i++)
		num[m]++;
	return 0;
}
int cur=0,flag=0;

int match (int k)
{
	for (int i=0;i<num[k];i++){
		if (a[k][i]=='(') b[k][i]='$';
		else if (a[k][i]==')') b[k][i]='?';
		else b[k][i]=' ';
	}
	while (1){
		int flag=-1,judge=0;
		for (int i=0;i<num[k];i++){
			if (b[k][i]=='$' && b[k][i+1]=='?')	{  
			b[k][i]=' '; b[k][i+1]=' ';
			judge=1;break;
		}
		else if (b[k][i]=='$' && b[k][i+1]==' ')
			flag=i;
		else if (b[k][i]=='?' && flag>=0)	
		{	
			b[k][i]=' '; b[k][flag]=' ';
			 flag=-1;judge=1;break;
		}
			}
		if (judge==0)
			break;}
	return 0;
		
	}
int main()
{
	char c[101];
	int i,a[101],j=0,k;
	while(scanf("%s", c) != EOF)
	{
		puts(c);
		for(i=0;;i++)
		{
			if(c[i]=='\0')break;
			else
			{
				if(c[i]=='(')
				{
					j++;a[j]=i;
				}
				else if(c[i]==')')
				{
					if(j>0)
					{
						c[i]=' ';
						c[a[j]]=' ';
						j--;
					}
				}
			}
		}
		for(k=0;k<i;k++)
		{
			if (c[k]=='(')printf("$");
			else if(c[k]==')')printf("?");
			else printf(" ");
		}
		j=0;
		printf("\n");
	}
}
int main()
{
	char a[100];
	int l, i, j, num1, num2;
	while (gets(a))
	{
		num1 = 0;
		num2 = 0;
	    l = strlen(a);
	    for (i = 0; i < l; i++)
		    cout << a[i];
	    cout << endl;
	    for (i = 0; i < l; i++)
		   if (a[i] != '(' && a[i] != ')')
		       a[i] = ' ';
		for (i = 0; i < l; i++)
		{
			if (a[i] == '(')
				num1++;
			if (a[i] == ')')
			{
				num2++;
				if (num2 <= num1)
				{
					a[i] = ' ';
					for (j = i; j >= 0; j--)
						if (a[j] == '(')
						{
							a[j] = ' ';
							break;
						}
				}
				if (num2 > num1)
				{
				    a[i] = '?';
				    num2--;
				}
			}
		}
		for (i = 0; i < l; i++)
			if (a[i] == '(')
				a[i] = '$';
		 for (i = 0; i < l; i++)
		    cout << a[i];
	    cout << endl;
	}
	return 0;
}
/*
 * BracketCaptureIII.cpp
 *
 *  Created on: 2012-11-28
 *      Author: Cui Zhaoxiong Class4 1200012931
 */
int main() {
	char str[105];
	int flag = 0;
	int puma[105];
	while (cin >> str) {
		flag = 0;
		cout << str << endl;
		for (int i = 0; i <= strlen(str) - 1; i++) {
			if (str[i] == '(') {
				str[i] = '$';
				flag++;
				puma[flag] = i;
			} else if (str[i] == ')') {
				if (flag > 0) {
					str[puma[flag]] = ' ';
					str[i] = ' ';
					flag--;
				} else
					str[i] = '?';
			} else {
				str[i] = ' ';
			}
		}
		cout << str << endl;
	}
	return 0;
}
char * mystrrchr(char * strcopy, char * end)
{
    char * tmp = end-1;
    while(tmp>=strcopy)
    {
        if(*tmp=='(')
        {
            return tmp;
        }
        tmp--;
    }
    return NULL;
}

void judge(char * str,char * flag)
{
    char strcopy[101];
    strcpy(strcopy,str);
    int len=strlen(strcopy);
    char * index1=strchr(strcopy,')');
    while(index1!=NULL&&(index1-strcopy)<len)
    {
        char * index2=mystrrchr(strcopy,index1);
        if(index2!=NULL)
        {
            strcopy[index1-strcopy]='-';
            strcopy[index2-strcopy]='-';
        }
        index1=strchr(index1+1,')');
    }
    int i=0;
    for(i=0;i<len;i++)
    {
        if(strcopy[i]=='(')
            flag[i]='$';
        if(strcopy[i]==')')
            flag[i]='?';
    }
    printf("%s\n%s\n",str,flag);
}

int main()
{
    int n=0;
    scanf("%d",&n);
    getchar();
    char str[101];
    char flag[101];
    while(n>0)
    {
        memset(flag,' ',sizeof(flag));
        gets(str);
        flag[strlen(str)]='\0';
        judge(str,flag);
        n--;
    }
    return 0;
}
int main()
{
	char a[500],b[500]={0};
	int n,i,k,j,jud[500]={0},max=0;
	for(i=0;i<500;i++)
		{
			a[i]=0;jud[i]=0;
		}
	while(scanf("%s",a)!=EOF)
	{
		for(i=0;i<500;i++)
		{
			b[i]=0;
		}
		for(i=0;i<strlen(a);i++)
		{
			b[i]=' ';
		}
		for(i=0;i<strlen(a);i++)
		{
			if(a[i]==')')
			{
				for(j=i-1;j>=0;j--)
				{
					if(a[j]=='('&&jud[j]==0)
					{
						jud[j]=1;
						jud[i]=1;
						break;
					}
				}
			}
		}
		for(i=0;i<strlen(a);i++)
		{
			if(a[i]=='('&&jud[i]==0)
			{
				b[i]='$';
				
			}
			if(a[i]==')'&&jud[i]==0)
			{
				b[i]='?';
				
			}
		}
		printf("%s\n%s\n",a,b);
		for(i=0;i<500;i++)
		{
			a[i]=0;jud[i]=0;
		}
	}
}
int len;
char str[101];
void f ( int p ) {
	int m = -1 , n = -1;
	for ( int i = p; i >= 0; i -- ) {
		if (*( str + i ) == '(') {
			m = i;
			break;
		}
	}
	for ( int i = m + 1; i <= len - 1; i ++ ) {
		if (*( str + i ) == ')')  {
			n = i;
			break;
		}
	}
	if ( m >= 0 && n >= 0 ) {
	str[m] = '#';
	str[n] = '#';
	}
	if ( m > 0 ) {
		f ( m - 1 );
	}
}

int main() {
	while( cin >> str ) {
	len = strlen( str );
	cout << str << endl;
	f ( len );
	for ( int j = 0;j <= len - 1; j ++ ) {
		if ( str[j] == '(' ) cout << "$";
		else if ( str[j] == ')' ) cout << "?";
		else cout << " ";
	}
	cout <<  endl;
	}
	return 0;
}
int main()
{
	char str[101]={"0"};
	int i,j,len,zuo,you,a[100];
	while(scanf("%s",str)!=EOF){
		len=strlen(str);
		for(i=0;i<len;i++)
			a[i]=0;
		for(i=len-1;i>=0;i--){
			if(str[i]=='('){
				zuo=0;you=0;
				for(j=i+1;j<len;j++){			
					if(str[j]=='('&&a[j]!=1)
				        zuo++;
			        else if(str[j]==')')
				        you++;
				}
				if(you<zuo+1)
					a[i]=1;
			}
		}
		for(i=0;i<len;i++){
			if(str[i]==')'){
				zuo=0;you=0;
				for(j=0;j<i;j++){			
					if(str[j]=='(')
				        zuo++;
			        else if(str[j]==')'&&a[j]!=-1)
				        you++;
				}
				if(zuo<you+1)
					a[i]=-1;
			}
		}
		printf("%s\n",str);
		for(i=0;i<len;i++){
		    if(a[i]==0) printf(" ");
			else if(a[i]==1) printf("$");
			else printf("?");
		}
		printf("\n");
	}
	return 0;
}
char a[100];int b;
void nihao()
{
  
  for(int i=0;i<b;i++)
  {
    int r=0;
    if(a[i]==')')
      {
        for(int j=i-1;j>=0;j--)
         {
          if(a[j]=='(')
           {
            for(int k=j;k<=i;k++)
              a[k]=' ';
            r=1;
            break;
           }
         } 
        if(r==0)
         { 
          a[i]='?';
          for(int k=i-1;k>=0;k--)
          if(a[k]!='?')
            a[k]=' ';
         }
      }
    } 
      
}
void nimei()
{
  for(int i=b-1;i>=0;i--)
    if(a[i]=='(')
      {
        a[i]='$';
      }
      
}
void nima()
{
   for(int i=0;i<b;i++)
     {
       if(a[i]!='?'&&a[i]!='$')
         a[i]=' ';
     }
   for(int i=0;i<b;i++)
     cout<<a[i];
   cout<<endl;
}
int main()
{
  while(cin>>a)
  {
    cout<<a;
    cout<<endl;
    b=strlen(a);
    nihao();
    nimei();
    nima();
  }
  
  
  
  
  
  return 0;
}
int main()
{
	char ch[110],temp[110],c[110];
	int i,figure;
	while(gets(ch)){
		figure = 0;
		for(i=0;ch[i] != '\0';i ++)
		{  temp[i]=' ';  
		switch(ch[i]){
case '(':c[figure ++]=i;temp[i]='$';break;
case ')':if(figure){figure--;temp[c[figure]]=' ';
		 }
		 else temp[i] = '?';break;}
		}
		temp[i]='\0';
		printf("%s\n%s\n",ch,temp);
	}
	return 0;
}
main()
{
    char a[101],b[101],c[101];
    while(gets(a)!=NULL)
    {int i=0,j=0,k=0;int n;
        n=strlen(a);
        for(i=0;i<n;i++)
        {b[i]=' ';
            c[i]=' ';}
            
            
        for(i=n-1;i>=0;i--)
            if(a[i]=='(')
                b[i]=a[i];
        for(i=0;i<n;i++)
            if(a[i]==')')
                c[i]=a[i];
        for(i=n-1;i>=0;i--)
            if(b[i]=='(')
            {for(j=i+1;j<n;j++)
                if(c[j]==')')
                {c[j]=' ';
                 b[i]=' ';
                    break;}}
        printf("%s\n",a);
        for(i=0;i<n;i++)
        {if(b[i]!=' ')
               a[i]='$';
             if(c[i]!=' ')
                 a[i]='?';
            if(b[i]==' '&&c[i]==' ')
                a[i]=' ';
        }
        printf("%s\n",a);
    }
    
     
    
    
    
    
    }
int main()
{
	char str[1000];	
	int l, i, j, d;
	while(1)
	{
		gets(str);
		if(str[0] == '\0')
			break;
		puts(str);
		l =	strlen(str);
		for(i = 0; i < l; i++)
		{
			if(str[i] == ' ') continue;
			if(str[i] != '(' && str[i] != ')')
				str[i] = ' ';
			else if(str[i] == '(')
			{
				d = 1;
				for(j = i + 1; j < l; j++)
				{
					if(str[j] == '(') d++;
					if(str[j] == ')') d--;
					if(d == 0)
					{
						str[i] = ' ';
						str[j] = ' ';
						break;
					}
                }
			}
		}
		for(i = 0; i < l; i++)
			if(str[i] == '(')
				printf("$");
			else if(str[i] == ')')
				printf("?");
			else
				printf("%c", str[i]);
		printf("\n");
		for(i = 0; i < l; i++)
			str[i] = '\0';
	}
	return 0;
}
int main()
{
	char a[110];
	char b[110];
	char c[110];
	while(gets(a))
	{
		strcpy(b,a);
		strcpy(c,a);
		int i,j;
		int n=strlen(a);
		int ju=0;
		for(i=n-1;i>=0;i--)
		{
			if(a[i]=='(')
			{
				for(j=i;j<n;j++)
				{
					if(a[j]==')')
					{
						a[j]=99;
						b[i]=b[j]=32;
						break;
					}
				}
				if(j==n)
				{
					b[i]='$';
				}
			}
		}
		for(i=0;i<n;i++)
		{
			if(b[i]!=32&&b[i]!=')'&&b[i]!='$')
				b[i]=32;
			else if(b[i]==')')
				b[i]='?';
		}
		printf("%s\n",c);
		printf("%s\n",b);
	}
	return 0;
}
int main(int argc, char* argv[])
{
	int N;cin>>N;
	for(int I=0;I<N;I++)
	{
		int i;
		char in[110];cin>>in;

		cout<<in<<endl; 
		int n=strlen(in);

		char mark[110]; for(i=0;i<n;i++) mark[i]=' ';
		
		int left=0;

		for(i=0;i<n;i++)
		{
			if(in[i]=='(') left++;

			else if(in[i]==')')
			{
				if(left)
				{left--;}
				else
				{
					mark[i]='?';
				}
			}
			
		}

		int right=0;
		for(i=n-1;i>=0;i--)
		{
			if(in[i]==')') right++;
			
			else if(in[i]=='(')
			{
				if(right)
				{right--;}
				else
				{
					mark[i]='$';
				}
			}
			
		}

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

	

	return 0;
}
int main()
{   int i,j,t1,t2,flag,len;
	int b[101],l[101],r[101];
	char s[101];
	while(scanf("%s",s)!=EOF){
		len=strlen(s);
		for(i=0;i<len;i++){
			if(s[i]=='('){
				b[i]=-1;
			}
			else if(s[i]==')'){
				b[i]=1;
			}
			else{
				b[i]=0;
			}
		}
		t1=0;
		t2=0;
		for(i=0;i<len;i++){
			if(b[i]==-1){
				l[t1]=i;
				t1++;
			}
			if(b[i]==1){
				r[t2]=i;
				t2++;
			}
		}
		for(i=t1-1;i>=0;i--){
			for(j=0;j<t2;j++){
				if(r[j]>l[i]){
					b[r[j]]=0;
					b[l[i]]=0;
					r[j]=0;
					l[i]=0;
					break;
				}
			}
		}
		puts(s);
		for(i=0;i<len;i++){
			if(b[i]==-1){
				printf("$");
			}
			else if(b[i]==1){
				printf("?");
			}
			else{
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}