semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	int i,n,j;
	char a[100][101],b[100][101],*k,*l;
	for(i=0;i<100;i++)
	{
		gets(a[i]);
		if(*(*(a+i))=='\0')
			break;
		for(j=0;*(*(a+i)+j)!='\0';j++)
		{
			if((*(*(a+i)+j)>='a'&&*(*(a+i)+j)<='z')||(*(*(a+i)+j)>='A'&&*(*(a+i)+j)<='Z'))
				b[i][j]=' ';
			else if(*(*(a+i)+j)=='(')
				b[i][j]='$';
			else if(*(*(a+i)+j)==')')
				b[i][j]='?';
		}
		b[i][j]='\0';
		for(k=b[i];*k!='\0';k++)
		{
			if(*k=='?')
			{
				for(l=k-1;l>=b[i];l--)
				{
					if(*l=='$')
					{
						*l=' ';
						*k=' ';
						break;
					}
				}
			}
		}
	}
	n=i;
	for(i=0;i<n;i++)
	{
		puts(a[i]);
		puts(b[i]);
	}
	return 0;
}
int main()
{
int i,j;char a[101]={0},b[101]={0};
while(scanf("%s",a)!=EOF)
{
strcpy(b,a);
for(i=0;a[i]!=0;i++)
{if(a[i]=='(')a[i]='$';
else if(a[i]==')') a[i]='?';
else a[i]=' ';}
for(i=0;a[i]!=0;i++)
{
if(a[i]=='?')
{
for(j=i-1;j>-1;j--)
if(a[j]=='$') {a[j]=' ';a[i]=' ';break;}
}
}
printf("%s\n",b);
printf("%s\n",a);
}
return 0;
}
int main()
{
char a[110];
while(gets(a)!=NULL)
{
puts(a);
for (int i=0;i<strlen(a);i++)
    {
    if (a[i]=='(') a[i]='$';
    else if (a[i]==')')
            {
            a[i]='?';
            for (int j=i-1;j>=0;j--)
                if (a[j]=='$')
                   {
                   a[j]=' ';
                   a[i]=' ';
                   break;
                   }
            }
         else a[i]=' ';
    }
puts(a);
}
}
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]]=' ';
					left--;
				}
			}
			
		}
		printf("%s\n",a);
		for(h=0;h<len;h++)
		{
			printf("%c",b[h]);
		}
		printf("\n");
	}
	return 0;
}
//***********************************************************************
//????????? 
//????????? 
//??????
//***********************************************************************
int match(int i, int n, char str[]);        //???? 
int main()                                  //??? 
{
    char str[101];
    int n; 
    while(cin>>str)                        //???? 
    {
                   cout<<str<<endl; 
                   n = strlen(str);
                   match(0, n, str);
                   cout<<str<<endl; 
    } 
    return 0;
}
int match(int i, int n, char str[])       //???? 
{
     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, n, str); 
     return 0;
}
int main()
{
	char a[105] = {0},b[105] = {0},c[105] = {0};
	int len;
	int i = 0,j = 0;
	while(cin >> a)
	{
		//cin.get(a,100);
		len = strlen(a);
		for( i = 0;i<len;i++)
			c[i] = a[i];
		for(i = 0;i<len;i++)
		{
			if(c[i] == ')')
			{
				for(j = i;j>=0;j--)
				{
					if(c[j] == '(')
					{
						c[i] = '.';
						c[j] = '.';
						break;
					}
				}
				if(j == -1)
				{
					b[i] = '?';
				}
			}
		}
		for(i = 0;i<len;i++)
		{
			if(c[i] =='(')
				b[i] = '$';
		}
		cout << a << endl;
		for(i = 0;i<len;i++)
		{
			if(b[i]!='$'&&b[i]!='?')
				cout << ' ';
			else
				cout << b[i];
		}
		cout << endl;
		i = 0;
		j = 0;
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		memset(c,0,sizeof(c));
	}
	return 0;
}
int a;
char str[100];
void find(void);
int main()
{
	int i;
	while(cin>>str){//?????
		cout<<str<<endl;
		a=strlen(str);//????????
		find();//
		for(i=0;i<a;i++){
			if(str[i]=='(')cout<<"$";//?????????????
			else{
				if(str[i]==')')cout<<"?";//
				else cout<<" ";
			}
		}
		cout<<endl;
	}
	return 0;
}
void find(void){//?????????????
	int i=0;
	int p=-1,q=-1;
	for(i=0;i<a;i++){
		if(str[i]!='('&&str[i]!=')') str[i]='\0';//???????
		if(str[i]=='(')p=i;//????????????
		if(p!=-1&&str[i]==')'){q=i;break;}//???????????
	}
	if(p!=-1&&q!=-1){str[p]='\0';str[q]='\0';find();}//??????????????
}
int main()
{
	int i,j,k,n,m;
	char a[200],b[200]={'0'},*kuoh[200];
	scanf("%d\n",&n);
	for(k=0;k<n;k++){
		gets(a);
		m=strlen(a);
    for(i=0;i<m;i++){
    	if(a[i]=='(')b[i]='$';
    	else if(a[i]==')')b[i]='?';
    	else b[i]=' ';
    }
    for(i=0;i<m;i++){
    	if(b[i]=='?')
    	for(j=i;j>=0;j--) if(b[j]=='$') {b[j]=' ';b[i]=' ';break;}
    }
    puts(a);
    puts(b);
	for(i=0;i<m;i++) b[i]='\0';
	}
	
	return 0;
}
void change(char str[])
{
	int n,i;
	n=strlen(str);
	for(i=0;i<n;i++)
	{
		if(str[i]=='(')
			str[i]='$';
		else if(str[i]==')')
			str[i]='?';
		else
			str[i]=' ';
	}
}
void match(char str[])
{
	int n,i,k;
	n=strlen(str);
	for(i=0;i<n;i++)
	{
		if(str[i]==')')
		{
			for(k=i;k>=0;k--)
			{
				if(str[k]=='(')
				{
					str[k]=' ';
					str[i]=' ';
					k=-1;
				}
			}
		}
	}
}
int main()
{
	char a,string[100];
	while(gets(string))
	{
		puts(string);
		match(string);
		change(string);
		puts(string);
	}
	return 0;
}
int main(){
char s[100],s1[100];
int i,len,t;
	while (cin>>s){
	 memset(s1,' ',sizeof(s1));
	 len=strlen(s);
	 t=0;
	 for (i=0;i<len;i++)
		 {if (s[i]=='(') t++;
		  if (s[i]==')')
		   {if (t>0) t--; else s1[i]='?';}}
	 t=0;
	 for (i=len-1;i>=0;i--)
	    { if (s[i]==')')t++;
	      if (s[i]=='(')
	       {if (t>0) t--; else s1[i]='$';}
	    }
	 for (i=0;i<len;i++) cout<<s[i]; cout<<endl;
	for (i=0;i<len;i++) cout<<s1[i]; cout<<endl;
	    }



	  return 0;
}
int main()
{
	char ch[110];
	int note[110], l, r;
	while(cin >> ch)
	{
		memset(note, 0, sizeof(note));
		for(int i = 0; ch[i] != '\0'; i++)
		{
			switch(ch[i])
			{
			case '(':
			{
				l = 0;
				r = 0;
				note[i] = 1;
				for(int j = i; ch[j] != '\0'; j++)
				{
					switch (ch[j])
					{
					case '(': l++; break;
					case ')': r++; break;
					default:	break;
					}
					if(l == r)
					{
						note[i] = 0;
						break;
					}
				}
				break;
			}
			case ')':
			{
				l = 0;
				r = 0;
				note[i] = -1;
				for(int j = i; j >= 0; j--)
				{
					switch (ch[j])
					{
					case '(': l++; break;
					case ')': r++; break;
					default:	break;
					}
					if(l == r)
					{
						note[i] = 0;
						break;
					}
				}
				break;
			}
			default:	break;
			}
		}
		cout << ch << endl;
		for(int i = 0; ch[i] != '\0'; i++)
		{
			switch (note[i])
			{
			case 1: cout << "$"; break;
			case -1: cout << "?"; break;
			case 0: cout << " "; break;
			default:
				break;
			}
		}
		cout << "\n";
	}
	return 0;
}
main()
{
char a[105];
while((gets(a))!=NULL)
{
printf("%s\n",a);
for (int i=0;a[i]!=0;i++)
   {
   if (a[i]=='(') 
     a[i]='$';
   else if (a[i]==')') 
        {
        a[i]='?';
        for (int j=i-1;j>=0;j--)
           if (a[j]=='$') 
           {
           a[j]=' ';
           a[i]=' ';
           break;
           }
        }  
        else a[i]=' ';
   }
printf("%s\n",a);
}
}
int main()
 {
    //    freopen ("1.txt","r",stdin);
  //      freopen ("2.txt","w",stdout);
       int i,len,lnum,num=0,left[102]={-1},fail[102]={0},t=0;
       char s1[102];
       while(scanf("%s",s1)!=EOF)
       {
        printf("%s\n",s1);
        len=strlen(s1);
        lnum=0;
        for(i=0;i<len;i++)
        {
           if(s1[i]=='(')
            {  
               lnum++;
               left[lnum]=i;  
            }
            
           if(s1[i]==')')
            {  
               if(lnum==0)
               fail[i]=2;
               else
               {
                   left[lnum]=-1;
                   lnum--;
               }
            }
        }
        for(i=1;i<=lnum;i++)
        {
           fail[left[i]]=1;
           left[i]=-1;
        }
      //  printf("lnum=%d\n",lnum);
       for(i=0;i<len;i++)
        if(fail[i]>0)
        num++;
           for(i=0;i<len&&num>0;i++)
            {
             if(fail[i]==2)
              {  printf("?"); num--; t=1;}
             if(fail[i]==1)
              {  printf("$"); num--; t=1;}
             if(fail[i]==0&&t==1)
                printf(" ");
                fail[i]=0;
            }
            t=0;
            printf("\n");
        }
       // getch();
       return 0;
        }
void main(void)
{
	while(1)
	{
		char str1[100],str2[100];
		gets(str1);

		if(feof(stdin))
			break;

		puts(str1);

		int k,n=strlen(str1),left[100],right[100],l=0,r=0;
		for(k=0;k<=n-1;k++)
		{
			if(str1[k]=='(')
			{
				left[l]=k;
				l++;
			}
			else if(str1[k]==')')
			{
				right[r]=k;
				r++;
			}
			else str2[k]=' ';
		}
		left[l]=100;
		right[r]=100;
		str2[n]='\0';

		int i,j,x=1,y=1;
		for(i=l-1;i>=0;i--)
		{
			int p=0;
			while(right[p]<left[i]) p++;
			if(x>(r-p)) str2[left[i]]='$';
			else
			{
				str2[left[i]]=' ';
				x++;
			}
		}
		for(j=0;j<=r-1;j++)
		{
			int q=0;
			while(left[q]<right[j]) q++;
			if(y>q) str2[right[j]]='?';
			else
			{
				str2[right[j]]=' ';
				y++;
			}
		}

		puts(str2);
	}
}
char s[1000];
void right(int i ,int j)//i????????
{
	if (s[i] == '\0');
	else if (s[i] == '(')
	{
		s[i] = '$'; right(i + 1, j + 1);
	}
	else if (s[i] == ')')
	{
		if (j == 0){ s[i] = '?'; right(i + 1, j); }
		else {
			for (int k = i;;k--)
			if (s[k] == '$'){
				s[k] = ' '; break;
			}
			s[i] = ' ';
			right(i + 1, j - 1);
		}
	}
	else
	{
		s[i] = ' '; right(i + 1, j);
	}
}
int main()
{
	for (; cin >> s;){
		cout << s << endl;		
		right( 0,0);
		cout << s << endl;
	}
}
int main()
{
	int n;
	scanf("%d", &n);
	
	int i;
	char s[1001];
	for(i=0;i<n;i++)
	{
		scanf("%s", s);
		
		char t[1001]={0};
		int j,k;
		int len =strlen(s);
		
		for(j=0;j<len;j++)
		{
			if(s[j]=='(')
			{
				int zo=1,yb=0;
				for(k=j+1;k<len;k++)
				{
					if(s[k]=='(')
					{
						zo++;
					}
					if(s[k]==')')
					{
						yb++;
					}
					if(zo==yb)
					{
						break;
					}
				}
				if(zo!=yb)
				{
					
					s[j]=0;
					t[j]='$';
				}
			}
			
			if(s[j]==')')
			{
				int zo=0,yb=1;
				for(k=j-1;k>=0;k--)
				{
					if(s[k]=='(')
					{
						zo++;
					}
					if(s[k]==')')
					{
						yb++;
					}
					if(zo==yb)
					{
						break;
					}
				}
				if(zo!=yb)
				{
					t[j]='?';
					s[j]=1;
				}
			}
			
		}	
		for(j=0;j<len;j++)
		{
			if(s[j]==0)
			{
				printf("(");
			}
			else if(s[j]==1)
			{
				printf(")");
			}
			else 
				printf("%c",s[j]);
		}
		
		printf("\n");
		for(j=0;j<len;j++)
		{
			if(t[j]=='?'||t[j]=='$')
			{
				printf("%c", t[j]);
			}
			else 
				printf(" ");
		}
		
		printf("\n");
		
	}
	
	
	return 0;
}
int main()
{
    char a[20][110]={0};
    int i,j,k,n=0;
    for(i=1;cin>>a[i];i++)
    {
                          n++;
    } 
    for(i=1;i<=n;i++)
    {
                     char b[110];
                     for(k=0;k<=109;k++)
                     {
                                        b[k]=' ';
                     }
                     int c[110]={0};
                     int p=0,q=0,m=0;
                     for(j=0;j<=109;j++)
                     {
                                        if(a[i][j]!=0)
                                        m++;
                    }
                     for(j=0;j<=m-1;j++)
                     {
                                        if(a[i][j]=='(')
                                        {
                                                     p++;
                                                     b[j]='$';
                                        }
                                        else if(a[i][j]==')')
                                        {
                                                     b[j]='?';
                                                     if(p>0)
                                                     {
                                                            b[j]=' ';
                                                            p--;
                                                            for(k=j-1;k>=0;k--)
                                                            {
                                                                            if((b[k]=='$')&&(c[k]==0)) break;
                                                            }
                                                            b[k]=' ';
                                                            c[k]=1;
                                                    }
                                        }
                     }
                     cout<<a[i]<<endl;
                     for(j=0;j<=m-2;j++)
                     {
                                        cout<<b[j];
                     }
                     cout<<b[m-1]<<endl;
    }
    return 0;
}
int main()
{
char a[200]={0},b[200]={0};
int i,j,k,l,n;
scanf("%d",&n);
for(k=0;k<n;k++)
{
scanf("%s",a);
l=strlen(a);
for(i=0;i<l;i++)
if(a[i]=='(')
b[i]='$';
else if(a[i]==')')
b[i]='?';
else
b[i]=' ';
for(i=0;i<l;i++)
if(b[i]=='?')
{
for(j=i-1;j>=0;j--)
if(b[j]=='$')
{b[i]=b[j]=' ';break;}

}
puts(a);
for(i=0;i<l;i++)
printf("%c",b[i]);
printf("\n");
}
}
int main(){
	int i,j,k;
	char s[1000];
	while(cin>>s){
		cout<<s<<endl;
		k=strlen(s);
		for(i=0;i<k;++i){
			if(s[i]==')'){
				for(j=i-1;j>=0;--j){
					if(s[j]=='('){
						s[i]=s[j]=' ';
						break;	
					}	
				}	
			}
		}
		for(i=0;i<k;++i){
			if(s[i]=='(')cout<<"$";
			else if(s[i]==')')cout<<"?";
			else cout<<" ";	
		}
		cout<<endl;
	}
	return 0;
}
int main(int argc, char* argv[])
{
	int n,i,j,k,m;
	int len;
	char c[101]={'0'};
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++)
	{
      scanf("%s",c);
	  printf("%s\n",c);
	  len=strlen(c);
      for(j=len-1;j>=0;j--)
	  {
		  if(c[j]!='(' && c[j]!=')')
			  c[j]=' ';
		  if(c[j]=='(' && j==len-1)
			  c[j]='$';
		  if(c[j]=='(')
		  {
			  k=j;
			  for(m=k;m<len;m++)
			  {
                  if(c[m]==')')
				  {
					  c[m]=' ';
					  c[j]=' ';
					  break;
				  }
			  }
			  if(m==len-1 && c[len-1] !=' ')
			  {
				  c[j]='$';
			  }
		  }
	  }
	  for(j=0;j<len;j++)
	  {
		  if(c[j]==')')
			  c[j]='?';
		  if(c[j]=='(')
			  c[j]='$';
	  }
	  printf("%s\n",c);
	}
	return 0;
}
int main()
{
	for(;;)
	{
	char cin[201],cout[201];
	int a[201]={0},i,j,n,sum;
	gets(cin);
	if(feof(stdin))
			break;

	n=strlen(cin);
	for(i=0;i<n;i++)
	{
		cout[i]=' ';
		if(cin[i]=='(')
			a[i]=1;
		else if(cin[i]==')')
			a[i]=-1;
	}
	for(i=0;i<n;i++)
	{
		sum=0;
		if(a[i]!=1)
			continue;
		for(j=i;j<n;j++)
		{
			sum=sum+a[j];
			if(sum==0)
				break;
		}
		if(sum!=0)
			cout[i]='$';
	}
	for(i=n-1;i>=0;i--)
	{
		sum=0;
		if(a[i]!=-1)
			continue;
		for(j=i;j>=0;j--)
		{
			sum=sum+a[j];
			if(sum==0)
				break;
		}
		if(sum!=0)
			cout[i]='?';
    }
	for(i=0;i<n;i++)
		printf("%c",cin[i]);
	printf("\n");
	for(i=0;i<n;i++)
		printf("%c",cout[i]);
	printf("\n");
	}
}
int main()
{
	int x[1000];
	char a[1000];
	int i, j;
	while (cin.getline(a, 1000))
	{
		int l = strlen(a);
		for (i = 0; i < l; i ++)
		{
			if (a[i] == '(')
				x[i] = 1;
			else if (a[i] == ')')
				x[i] = -1;
			else
				x[i] = 0;
		}
		for (i = 1; i < l; i ++)
			for (j = 0; j < l - i; j ++)
				if (x[j] == 1 && x[i + j] == -1)
					x[j] = x[i + j] = 0;
		cout << a << endl;
		for (i = 0; i < l; i ++)
		{
			if (x[i] == 1)
				cout << "$";
			else if (x[i] == -1)
				cout << "?";
			else 
				cout << " "; 
		}
		cout << endl;
	}
	return 0;
}
int main()
{
	char line[101], label[101];
	int pos[101];
	int i , len;
	while(cin.getline(line, 101))
	{
		int left = 0; //letf????????
		len = strlen(line);
		for (i= 0; i < 100; i++) //???label
			label[i] = ' ';
		for (i= 0; line[i] != '\0'; i++)
		{
			if (line[i] == '(')
			{
				left++; //???????????
				pos[left] = i; //????
			}
			if(line[i]==')')
				if( left == 0) //????????????
					label[i]='?'; //?????????
				else//??????????
					left--; //???????
		}
		for(i = 1; i <= left; i++)
			label[pos[i]] = '$'; //??????????$
		label[len] = '\0'; //???????
		cout<< line << endl;
		cout<< label << endl;
	}
	return 0;
}
//3704:??????
//2010?11?13?
//1000012753 ???
int main()
{
	char str[200];
	int i, j, k, ei, bi, l;
	while (cin.getline(str, 150))
	{  
		int strout[101] = {0};
		l = strlen(str);
		for (i = 0; i < l; i++)
		{
			if (str[i] == '(')
				strout[i] = -1;
			else if(str[i] == ')')
				strout[i] = 1;
		}
		for (i = 0; i < l; i++)
		{
			if (strout[i] != -1)
				continue;
			for (j = i + 1; j < l; j++)
			{
				if (strout[j] != 1)
					continue;
				for (k = j; k >= i; k--)
				{
					if (strout[k] == -1)
					{
						strout[k] = 0;
						strout[j] = 0;
						break;
					}
				}
			}
		}
		cout << str << endl;
		bi = l - 1;
		ei = 0;
		for (i = 0; i < l; i++)
			if (strout[i] != 0)
			{
				bi = i;
				break;
			}
		for (i = l - 1; i >= 0; i--)
			if (strout[i] != 0)
			{
				ei = i;
				break;
			}

		for (i = bi; i <= ei; i++)
		{
			if (strout[i] == 0)
				cout << ' ';
			else if (strout[i] == -1)
				cout << '$';
			else
				cout << '?';
		}
		cout << endl;
	}

	return 0;
}
main()
{
   char a[101],b[101];
   int st[100],sp;
   int i,l,m,n,t; 
   while(1)
   {  
      for(i=0;i<=99;i++)  
      st[i]=0;
      sp=0;
      scanf("%s",a);
      if(a[0]=='\0')
      break;
      strcpy(b,a);
      l=strlen(a);
      for(i=0;i<=l-1;i++)
      {
         if(a[i]=='(')
         {
         st[sp]=i;
         break;
         }
      }
      if(i==l);
      else
      {
         for(sp=1,i=st[0]+1;i<=l-1;i++)
         {
            if(a[i]=='(')
            st[sp++]=i;
            else if(a[i]==')')
            {  
               if(sp>0)
               {
                  b[st[--sp]]=' ';
                  b[i]=' ';
               }
            }                 
         }
      }
      for(i=0;i<=l-1;i++)
      {
         if(b[i]=='(')
         b[i]='$';
         else if(b[i]==')')
         b[i]='?';
         else if(b[i]==' ');
         else
         b[i]=' ';
      }   
      printf("%s\n",a);
      n=l-1;
      for(i=l-1;i>=0;i--)
      {
            if(b[i]==' ')
            n=i-1;
            else
            break;
      }
      m=0;
      for(i=0;i<=l-1;i++)
      {
         if(b[i]==' ')
         m=i+1;
         else
         break;                   
      }
      t=0;
      for(i=m;i<=n;i++)
      {
         printf("%c",b[i]);
         t++;
      }
      printf("\n");
      a[0]='\0';
   }                
}
int main()
{
	char a[200];
	while(scanf("%s",a)!=EOF)
	{
		char al[200]={'\0'};
		int i;
	    for(i=0;a[i];i++)
		{
			if(a[i]=='(')
				al[i]='$';
			else if(a[i]==')')
				al[i]='?';
			else
				al[i]=' ';
	     }
		void func(char s[]);
	
	    func(al);
		puts(a);
	    puts(al);
		strcpy(a,"'\0'");
	}
	return 0;
}
void func(char s[])
{
	int i;
	int t1=0,t2=0;
	int n=strlen(s);
	for(i=0;i<strlen(s);i++)
	{
		while(!(s[i]=='$'||s[i]=='?')&&s[i]!='\0') 
			i++;
		t1=i;
		
		i=i+1;
		while(!(s[i]=='$'||s[i]=='?')&&s[i]!='\0')
		
				 i++;
		
		if(s[i]=='\0')
			break;
		t2=i;
		if(s[t1]=='$'&&s[t2]=='?')
			{
				s[t1]=' ';
				s[t2]=' ';
				i=-1;continue;
		   }
		i=t1;
	}
}
void f(char s[])
{
	int i,j,k,l;
	int n=strlen(s);
	for(i=0;i<n;i++)
	{
		 if(s[i]!='('&&s[i]!=')')
			s[i]=' ';
	}
    for(i=0;i<n;i++)
	{
		if(s[i]==')')
		{
			l=0;
			for(j=i-1;j>=0;j--)
			{
				if(s[j]=='(')
				{
					s[j]=' ';
					s[i]=' ';
					l=1;
					break;
				}
			}
			if(l==0)
				s[i]='?';
		}
	}
    for(i=0;i<n;i++)
		if(s[i]!=' '&&s[i]!='?')
			s[i]='$';
}
int  main()
{
	int n,i;
	scanf("%d",&n);
	char s[10000];
	gets(s);
    for(i=0;i<n;i++)
	{
		gets(s);
		puts(s);
        f(s);
		puts(s);
	}
	return 0;
}
int main()
{
	char str[101];
	int n,i,j,l,k=0;
	char c[101];
	int left=0,right=0;
	int e[101]={0};
	cin >> n;
	for(i=1;i<=n;i++)
	{
		left=0;right=0;
		cin >> str;
		l=strlen(str);
		for(j=0;j<l;j++)
		{
			e[j]=0;
			if(str[j]=='(')
			{
				left++;
				e[j]=1;
				c[left]=j;
			}
			if(str[j]==')')
			{
				if(left==0)
				{
					e[j]=2;
				}
				else
				{
					e[c[left]]=0;
					left--;
				}
			}
			else
				continue;
		}
		cout << str << endl;
		for(j=0;j<l;j++)
		{
			if(e[j]==1)
				cout << "$";
			else if(e[j]==2)
				cout << "?" ;
			else
				cout << " " ;
		}
		cout << endl;
	}
	return 0;
}
int main()
{
	char a[102], b[102];
	int len, i, left, leftNum[102];
	while(cin >> a)
	{
		left = 0;
		len = strlen(a);
		for (i = 0; i < 102; i++)
			b[i] = ' ';
		for (i = 0; i < len; i++)
		{
			if (a[i] == '(')
			{
				b[i] = '$';
				left++;
				leftNum[left] = i;
			}
			if (a[i] == ')')
				if (left > 0)
				{
					b[leftNum[left]] = ' ';
					left--;
				}
				else
					b[i] = '?';
		}
		b[len] = '\0';
		cout << a << endl << b << endl;
	}
	return 0;
}
// ????????????$????????????????????
char str[103], temp[103];
int len;
int match(int x) {
	int y;
	if (x == len)//??x?len??????????x 
		return x;
	if (str[x] == '(')//??str[x] = '('??y = match?x+1) 
		y = match(x + 1);
	else if (str[x] == ')')//??str[x] = '(',??x 
		return x;
	else//???????match?x+1? 
		return match(x + 1);
	if (y == len) {//??y = len???temp[x] = $,?????????????y 
		temp[x] = '$';
		return y;
	} else//???????match(y+1) 
		return match(y + 1);
}
int main() {
	while (cin >> str) {//????? 
		cout << str << endl;//???str 
		len = strlen(str);//len?str??? 
		int z = 0;
		memset(temp, ' ', sizeof(temp));//?temp?????? 
		while (z != len) {//?????????? 
			z = match(z);
			if (z != len) {
				temp[z] = '?';
				z++;
			}
		}
		for (int i = 0; i < len; i++)
			cout << temp[i];
		cout << endl;
	}
	return 0;
}
int main()
{
	char s[100][100];
	int c[100],i,j,k=0;//?-1?1??0
	while((scanf("%s",s[k]))!=EOF){
		puts(s[k]);
		for(i=0;i<strlen(s[k]);i++){
			if(s[k][i]=='(')
				c[i]=-1;
			else if(s[k][i]==')')
				c[i]=1;
			else
				c[i]=0;
		}
		for(i=1;i<strlen(s[k]);i++)//??i??????????
			for(j=0;j<strlen(s[k])-i;j++)
				if(c[j]==-1&&c[j+i]==1){
					c[j]=0;
					c[j+i]=0;
				}
		for(i=0;i<strlen(s[k]);i++){
			if(c[i]==0)
				printf(" ");
			else if(c[i]==-1)
				printf("$");
			else if(c[i]==1)
				printf("?");
		}
		printf("\n");
		k++;
	}
	return 0;
}
/*
 * 8.cpp
 *
 *  Created on: 2013-12-5
 *      Author: Administrator
 */
int main ()
{
	char a[100];
	int i,k,s;
	for (;scanf("%s",a)!=EOF;)
	{
		s=0;
		s=strlen(a);
		for(i=0;i<s;i++)
			cout<<a[i];//??????????
		cout<<endl;
		for(i=0;i<s;i++)
		{
			if(a[i]=='(')
				a[i]='$';//??????????$"
			else
				if(a[i]==')')
					a[i]='?';//??????????
				else
					a[i]=' ';//???????????
		}
		for(i=s-1;i>=0;i--)//???????????
		{
			if(a[i]=='$')
			{
				for(k=i;k<s;k++)//???????????
				{
					if(a[k]=='?')
					{
						a[i]=' ';
						a[k]=' ';
						break;//????????? ????????
					}
				}
			}
		}
		for(i=0;i<s;i++)
			cout<<a[i];//??????
		cout<<endl;
	}
return 0;
}
int a[110],la;
int b[110];

int main ()
{
    while (1)
    {
        int f=getchar();
        if (f==-1)
            break;
        a[1]=f;
        for (int i=2;i<=109;i++)
        {
            a[i]=getchar();
            if (a[i]==10)
            {
                la=i-1;
                break;
            }
        }
        for (int i=1;i<=la+1;i++)
            putchar(a[i]);
        for (int i=1;i<=la;i++)
        {
            if (a[i]==')')
            {
                for (int j=i-1;j>=1;j--)
                {
                    if (a[j]==')')
                        break;
                    if (a[j]=='(')
                    {
                        a[i]=0;
                        a[j]=0;
                        break;
                    }
                }
            }
        }
        for (int i=1;i<=la;i++)
        {
            if (a[i]!='('&&a[i]!=')')
                putchar(32);
            if (a[i]=='(')
                putchar('$');
            if (a[i]==')')
                putchar('?');
        }
        putchar (10);
    }
    return 0;
}