semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	void kuo(char c[]);
	void pipei(char c[],char a[]);
	int n,i;
	scanf("%d\n",&n);
	for(i=0;i<n;i++)
	{
		char c[200]={'\0'},a[200]={'\0'};
		gets(c);
		printf("%s\n",c);
		kuo(c);
		pipei(c,a);
	}
	return 0;
}
void pipei(char c[],char a[])
{
	char *p,*q;
	for(p=c,q=a;*p!='\0';p++,q++)
	{
		if(*p!='('&&*p!=')')
			*q=' ';
		if(*p==')')
			*q='?';
		if(*p=='(')
			*q='$';
	}
	*q=*p;
	printf("%s\n",a);
}
void kuo(char c[])
{
	char *p,*q,*i,*t;
	int s;
    for(;;)
	{
		s=0;
		for(i=c;*i!='\0';i++)
			for(p=i;*p!='\0';p++)
			{
				if(*p=='(')
					for(q=p+1;*q!='\0';q++)
					{
						if(*q=='(')
							break;
						else
							if(*q==')')
							{
								*p='a';
								*q='a';
								break;
							}
					}
			}
		for(q=c;*q!='\0';q++)
		{
			for(t=q;*t!='\0';t++)
			{
				if(*q=='('&&*t==')')
					s=1;
			}
		}
		if(s==0)
		break;
	}
	
}
int main()
{
	for (char c[101]; cin.getline(c, 101);)
	{
		char a[101] = { ' ' };
		int len = strlen(c), cnt = 0, left[101] = { 0 };
		for (int i = 0; i < len; i++)
		{
			if (c[i] != '(' && c[i] != ')')
				a[i] = ' ';
			else
			{
				if (c[i] == '(')
				{
					a[i] = '$';
					cnt += 1;
					left[cnt] = i + 1;
				}
				else
				{
					if (cnt<=0)
						a[i] = '?';
					else
					{
						a[i] = ' ';
						a[left[cnt]-1] = ' ';
						left[cnt] = 0;
						cnt -= 1;
					}
				}
			}
		}
		cout << c << endl;
		cout << a << endl;

	}
	return 0;
}
int f1(char zichuan[],int changdu)
{
    int i,n;
	for(i=changdu-1;i>=0;i--)
	{
		if(zichuan[i]=='(')
		{
			n=i+1;
		   while(zichuan[n]!=')')
		   {
			   n=n+1;
		   }
		   if(n<changdu)
		   {
			   zichuan[i]=' ';
			   zichuan[n]=' ';
		   }
		}
	}
	return 0;
}

int main()
{
	int i=0,changdu;
	char s[100];
  while(gets(s))
  {
  changdu=strlen(s);
  printf("%s\n",s);
  f1(s,changdu);
  for(i=0;i<changdu;i++)
  {
     switch(s[i])
	 {
	 case '(':s[i]='$';break;
	 case ')':s[i]='?';break;
	 default :s[i]=' ';break;
	 }
  }
   for(i=0;i<changdu;i++)
   {
	   printf("%c",s[i]);
   }
   printf("\n");
  }
	return 0;

}
int main()
{
	int n,i,j,l;char s[102];
	while(scanf("%s",s)!=EOF)
	{
		l=strlen(s);
		printf("%s\n",s);
		for(i=0;i<l;i++)
			if(s[i]=='(')s[i]='$';
			else if(s[i]==')')
			{
				s[i]='?';
				for(j=i-1;j>-1;j--)
					if(s[j]=='$'){s[j]=' ';s[i]=' ';break;}
			}
			else s[i]=' ';
			printf("%s\n",s);
	}
	return 0;
}
void main()
{
	int n,k;
	char a[101];
	int i,j,flag;
	scanf("%d",&n);
	for(k=0;k<n;k++)
	{
		scanf("%s",a);
		printf("%s\n",a);
		for(i=0;i<strlen(a);i++)
		{
			if(a[i]==40)
			{
				if(i==strlen(a)-1)
					printf("$");
				else
				{
					flag=1;
					for(j=i+1;j<strlen(a);j++)
					{
						if(a[j]==41 && flag==1)
						{
							flag--;
							break;
						}
						else if (a[j]==41 && flag!=1)
						{
							flag=flag-1;
						}
						else if (a[j]==40)
						{
							flag=flag+1;
						}

					}
					if(flag==0)
						printf(" ");
					else
						printf("$");
				}
			}


			else if(a[i]==41)
			{
				if(i==0)
					printf("?");
				else
				{
					flag=1;
					for(j=i-1;j>=0;j--)
					{
						if(a[j]==40 && flag==1)
						{
							flag--;
							break;
						}
						else if (a[j]==40 && flag!=1)
						{
							flag=flag-1;
						}
						else if (a[j]==41)
						{
							flag=flag+1;
						}
					}
					if(flag==0)
						printf(" ");
					else
						printf("?");
				}
			}

			else
				printf(" ");
		}
		printf("\n");
	}


	

}
int main()
{
    char a[101];
    char b[101];
    int flag[101];
    int i,j,len,count,sign;

    while(1)
    {
        sign=0;
        i=-1;
        do
        {
            i++;
            if(cin.get(a[i]))   sign=1;
        }while(a[i]!='\n');
        if(sign==0) break;
        a[i]=0;len=i;                   //i???a???
        memset(b,' ',sizeof(b));
        b[i]=0;
        memset(flag,0,sizeof(flag));//?????

        for(i=0;i<len;i++)
        {
            if(a[i]=='(')           //???????????
            {
                j=i+1;count=0;
                while(j<len)
                {
                    if(a[j]=='(')count++;
                    else if(a[j]==')')
                    {
                        if(count==0){flag[i]=1;flag[j]=1;break;}//???????
                        else    count--;
                    }
                    j++;
                }
                if(flag[i]==0)  b[i]='$';
            }
            else  if((a[i]==')')&&(flag[i]==0)) b[i]='?';//???????????????????
        }
        cout<<a<<endl;
        cout<<b<<endl;
    }
}
int main()
{
	int n,i,j,k,flag;
	char a[200],b[200];
	scanf("%d",&n);
	for (i=0;i<n;i++)
	{
		memset(b,0,200);
		scanf("%s",a);
		for (j=0;j<strlen(a);j++)
		{
			if (a[j]=='(')
			{
				flag=1;
				k=j+1;
				while (flag!=0&&k<strlen(a))
				{
					if (a[k]=='(')
						flag++;
					if (a[k]==')')
						flag--;
					k++;
				}
				if (k>=strlen(a)&&flag!=0)
					b[j]='$';
				else 
				{
					b[k-1]=' ';
					b[j]=' ';
				}
			}
			else if (a[j]==')'&&b[j]!=' ')
				b[j]='?';
			else b[j]=' ';
		}
		printf("%s\n",a);
		printf("%s\n",b);
	}
	return 0;
}
int main()
{
	int i,j,m,t,len;
	char a[100];
	while(cin>>a)
	{
		t=0;
		m=0;
		cout<<a<<endl;
		len=strlen(a);
		for(i=0;i<len;i++)
			if(a[i]==')')
				for(j=i-1;j>=0;j--)
					if(a[j]=='(')
					{
						a[i]='a';
						a[j]='a';
						break;
					}
		for(i=0;i<len;i++)
			if((a[i]=='(')||(a[i]==')'))
			{
				m=i;
				break;
			}
		for(i=len-1;i>=0;i--)
			if((a[i]=='(')||(a[i]==')'))
			{
				t=i;
				break;
			}
		for(i=m;i<=t;i++)
		{
			if(a[i]==')')
				cout<<"?";
			else if(a[i]=='(')
				cout<<"$";
			else
				cout<<" ";
		}
		cout<<endl;
	}
	return 0;
}
/*
 * kuohao.cpp
 *?? - 3704:??????
 *  Created on: 2012-12-6
 *      Author: ???
 */
int i,j,k,lena;
char a[101];
int main(){
	while(cin>>a)
	{
		cout<<a<<endl;
		lena=strlen(a);
		for(i=0;i<lena;i++)
		{
			if(a[i]==')'){
				for(j=i;j>=0;j--){
					if(a[j]=='('){
						a[i]='*';
						a[j]='*';
						break;
					}
				}

				}
			}
		for(i=0;i<lena;i++)
		{
			if(a[i]=='(')
				{
				a[i]='$';
				}
			else
				if(a[i]==')')
					{a[i]='?';
				}
				else a[i]=' ';
		}
		cout<<a<<endl;
	}
		return 0;
}
// 5.cpp : Defines the entry point for the console application.
//

int main()
{
	char s[101],ss[101];
	int len,i,j,q,h=0;
	while(gets(s)){
		len=strlen(s);
		strcpy(ss,s);
		for(i=0;i<len;i++){
			if(s[i]=='('){

				for(j=i+1;j<len;j++){
					if(s[j]=='('){
						i=j;
					}
					else if(s[j]==')'){
						s[i]=' ';
						s[j]=' ';
						break;
					}

				}
                                    if(j == len) break;

					i=-1;
			}
		}
		for(q=0;q<len;q++){
			if(s[q]==')'){
				s[q]='?';
			}
			else if(s[q]=='('){
				s[q]='$';
			}
			else
				s[q]=' ';
		}
		printf("%s\n",ss);
		printf("%s\n",s);
	}
	return 0;
}
/*
 * ????1104.cpp
 * ??????
 * ?????2012-12-4
 * ??????????
 */


char str[100], s[100];


void match(int x) {
	int i;
	for (i = x - 1; i >= 0; --i)
		if (s[i] == '$') {
			s[x] = ' ';
			s[i] = ' ';
			break;
		}
} //?????????'$'??????????????

int main() {
	int i, l;
	while (cin >> str) {
		l = strlen(str);
		s[l] = '\0'; //??????????
		for (i = 0; i < l; ++i)
			s[i] = ' '; //??????????
		cout << str << endl; //???????????????
		for (i = 0; i < l; ++i)
			switch (str[i]) {
			case '(':
				s[i] = '$';
				break;
			case ')':
				s[i] = '?';
				match(i);
				break;
			} //???????'('???????'$'???')'???????'?'???????
		cout << s << endl; //??????
	}
	return 0; //????
}
char s1[101],s2[101];
int f(int);

int main()
{
	while (scanf("%s",s1)!=EOF)
	{
		f(0);
		cout<<s1<<endl<<s2<<endl;
	}
	return 0;
}

int f(int k)
{
	if(s1[k]=='\0') {s2[k]='\0';return 0;}

	if(s1[k]==')')
	{ s2[k]='?';f(k+1);return 0; }

	if(s1[k]=='(')
	{
		for(int i=k+1;i>0;i++)
		{
			if(s1[i]=='\0')
			{s2[i]='\0';i=-1;}

			else if(s1[i]=='(')
			{ i=f(i); }

			else if(s1[i]==')')
			{ s2[k]=' ';s2[i]=' ';f(i+1);return i; }

			else { s2[i]=' '; }
		}
		s2[k]='$';
		return -1;
	}

	s2[k]=' ';f(k+1);
	return 0;
}
/*
 * kuohaopipei.cpp
 *????
 *  Created on: 2012-12-4
 *      Author: ???
 */
void f(char str[105], int len)//??????
{
	int i,j;
	for(i=0;i<len;i++){//????????
		cout << str[i];
	}
	cout << endl;//??
	for(i=0;i<len;i++){//????????????????
		if(str[i]==')'){
			int x=0;
			for(j=i-1;j>=0;j--){
				if(str[j]=='('){
					x=1;
					str[i]='a';//????????????
					str[j]='a';
					break;
				}
			}
			if(x==0)//?????????
				str[i]='?';
		}
	}
	for(i=0;i<len;i++){//?????????$???
		if(str[i]=='(')
			str[i]='$';}
	for(i=0;i<len;i++){//?????????
		if(str[i]!='$' && str[i]!='?')
			str[i]=' ';
	}
	for(i=0;i<len;i++){//????
		cout << str[i];}
	cout << endl;
}
int main(){//???? 
	char str[105];
	int len;
	while(cin >> str){//?????????
		len=strlen(str);
		f(str,len);
	}
	return 0;
}
char word[200];
int pp[200],len;
void op()
{
     int t=0,i;
     for(i=0;i<=len;i++)
     pp[i]=0;
     for(i=0;i<len;i++)
     {
                       if(word[i]=='(')
                       t++;
                       if(word[i]==')')
                       {
                                       t--;
                                       if(t<0)
                                       {pp[i]=ykhao;
                                       t++;}
                       }
     }
     t=0;
     for(i=len-1;i>=0;i--)
     {
                       if(word[i]==')'&&pp[i]!=ykhao)
                       t++;
                       if(word[i]=='(')
                       {
                                       t--;
                                       if(t<0)
                                       {pp[i]=zkhao;
                                       t++;}
                       }
     }
}
void pr()
{
     int i;
     printf("%s\n",word);
     for(i=0;i<len;i++)
     {
                        if(pp[i]==0)
                        printf(" ");
                        if(pp[i]==zkhao)
                        printf("$");
                        if(pp[i]==ykhao)
                        printf("?");
     }
}
/*int main()
{
    printf("1");
    getch();
    return 0;
}*/
int main()
{
    int n,i;
    //freopen("1.txt","w",stdout);
    scanf("%d\n",&n);
    gets(word);
    len=strlen(word);
    op();
    pr();
    for(i=2;i<=n;i++)
    {gets(word);
    len=strlen(word);
    printf("\n");
    op();
    pr();
    }
    //getch();
    return 0;
}
int main()
{
	char ans[100], c;
	int stack[100], top = 0, l = 0;
	while(scanf("%c", &c) == 1)
	{
		cout << c;
		if (c == '\n')
		{
			ans[l] = '\0';
			cout << ans << endl;
			top = 0;
			l = 0;
			continue;
		}
		if (c == '(')
		{
			stack[top++] = l;
			ans[l] = '$';
			l++;
			continue;
		}
		if (c == ')')
		{
			if (top == 0)
			{
				ans[l++] = '?';
				continue;
			}
			else
			{
				ans[l++] = ' ';
				ans[stack[--top]] = ' ';
				continue;
			}
		}
		ans[l++] = ' ';
	}
	cout << endl;
	ans[l] = '\0';
	cout << ans << endl;
	
	return 0;
}
int main()
{
	int j=0;
	for(j=0;j<10;j++)
	{
		char a[200]={0},b[200]={0};//a??????b???????
		int i=0,k=0,x=0,n=0;//??,n?????
		for(i=0;;i++)//?????????
		{
			a[i]=getchar();
			if(a[i]=='\n')
				break;
			n++;
		}
		for(i=0;i<n;i++)//?????b
			b[i]=a[i];
		for(i=0;i<n;i++)//?????????
			if(b[i]!='('&&b[i]!=')')
				b[i]=' ';
		for(i=0;i<n;i++)//????????,???????????,??,??????????
		{
			for(k=0;k<n;k++)
			{
				if(b[k]==')')
				{
					for(x=0;x<=k;x++)
					{
						if(b[k-x]=='(')
						{
							b[k]=' ';
							b[k-x]=' ';
							break;
						}
					}
				}
			}
		}
		for(i=0;i<n;i++)//??????????
		{
			if(b[i]=='(')
				b[i]='$';
			else if(b[i]==')')
				b[i]='?';
		}
		for(i=0;i<n;i++)//??
			cout<<a[i];
		cout<<endl;
		for(i=0;i<n;i++)
			cout<<b[i];
                cout<<endl;
	}
	return 0;
}
/*
 * 1.cpp
 *
 *  Created on: 2012-11-23
 *      Author: 12066
 */

char a[200];
int x=0, y=0;
void find(int min)//??????
{
	if( min>0 )
	{
		int p=-1;
		for( int i=0; i<strlen(a); i++ )
		{
			if(a[i]==')' && p>=0 )//??????????????
			{
				a[p]='a';
				a[i]='b';
				break;
			}
			else if( a[i]=='(')
			{
				p=i;
			}
		}
		find( min-1 );//????
	}
}
void change()//????????
{
	for( int i=0; i<strlen(a); i++ )
	{
		if( a[i]=='(' )
			a[i]='$';
		else if( a[i]==')' )
			a[i]='?';
		else
			a[i]=' ';
	}
}
void qingling()//??
{
	for( int i=0; i<strlen(a); i++ )
	{
		a[i]='\0';
	}
}
int main()
{
	while(cin.getline(a, 101)){
	cout << a << endl;
	for( int i=0; i<strlen(a); i++ )//??????????
	{
		if( a[i]=='(' )
			x++;
		if( a[i]==')' )
			y++;
	}
	int min=0;
	if( x<y )
		min=x;
	else
		min=y;
	find(min);//??
	change();//???
	cout << a << endl;//??
	qingling();
	x=0;
	y=0;
	}
	return 0;
}
int main()
{
	int i,j,k,left;
	char s[102]={'\0'},t[102]={'\0'};
	int num[102];
	while(scanf("%s",s)!=EOF)
	{
		printf("%s\n",s);
		k=strlen(s);
		left=0;
		for(i=0;i<=k-1;i++)
		{
			switch(s[i])
			{
			case 40:{left=left+1;num[left]=i;t[i]='$';break;}
			case 41:{if(left!=0){t[num[left]]=32;t[i]=32;left=left-1;}else {t[i]='?';}break;}
			default:{t[i]=32;break;}
			}
		}
		for(i=0;i<=k-1;i++)
		{printf("%c",t[i]);}
		printf("\n");
	}
	return 0;
}
int main()
{
	int n;
	scanf("%d", &n);
	int i,j,num,p,q;
	for(i=0;i<n;i++)
	{
		char a[101],b[101];
		scanf("%s", &a);
		num=strlen(a);
		for(j=0;j<num;j++)
		{
			if(a[j]=='(')
			{
				b[j]='$';
			}
			else if(a[j]==')')
			{
				b[j]='?';
			}
			else 
			{
				b[j]=' ';
			}
		}
        
        for(p=num-1;p>=0;p--)
		{
			if(b[p]=='$')
			{
			    for(q=p;q<num;q++)
				{
					if(b[q]=='?')
					{
						b[q]=' ';
						b[p]=' ';
						break;
					}
				}
			}
		}
		for(j=0;j<num;j++)
		{
			
			printf("%c", a[j]);
		}
		printf("\n");
		for(j=0;j<num;j++)
		{
			
			printf("%c", b[j]);
		}
		printf("\n");
		p=0;
		q=0;
	}
}
int main()
{  
    char line[101], label[101];   //label???????
    int  pos[100];                //pos???????????
    int  left = 0, right = 0;     //?????????
    int  pos_i, len;              // ??????pos_i?????0
    int  i;
    while (cin.getline(line, 101))    //??????
	{
	    pos_i = -1, left = 0; right = 0; //?????????????
		
		len = strlen(line);
		
		for (i = 0; i < 100; i++)  //???label
			label[i] = ' ';
		
		for (i = 0;  line[i] != '\0';  i++)
		{	
			if (line[i] == '(')            
            //???????????	
            {     
				pos[++pos_i] = i; 
				left++; 
			} 
	      	if(line[i]==')')
			{
				if( left <= right)		//????????????????
					label[i]='?';   	//?????????
				else
				{	
					right++;  
					pos_i--;
				}
			}         //???????????????
		} 
       
		if(pos_i >= 0)      // ???-1????-1???????????     
		{
			for(i = 0; i <= pos_i; i++)
				label[pos[i]] = '$';  //??????????$
		}
			
	
		i = len - 1;
		
		label[i + 1] = '\0';  //???????
		       
		cout << line << endl;	
		cout << label << endl;  
   }
   return 0;
}
//Patricia.Xiao
//????????
char a[110];
int match(int i)
{
	int j;
	int l=strlen(a);
	if(i==l)
		return 0;   //??
	if(a[i]=='?')   //????
	{
		for(j=i-1;j>=0;j--)
		{
			if(a[j]=='$')
			{
				//printf("%d %d\n",i,j);  //debug
				a[j]=' ';
				a[i]=' ';
				break;   //????????????????else?????bug?
			}
		}
	}
	match(i+1);
	return 0;
}
int main()
{
	int l;
	int i;
	while(scanf("%s",a)!=EOF)
	{
		printf("%s\n",a);
		l=strlen(a);
		for(i=0;i<l;i++)   //??
		{
			if(a[i]=='(')
				a[i]='$';
			else
				if(a[i]==')')
					a[i]='?';
				else
					a[i]=' ';
		}
		match(1);
		printf("%s\n",a);
	}
	return 0;
}
right(char s[],int i,int n)
{
	int j;
	int left=0,right=0;
	int num=0;

	for(j=i+1;j<n;j++){
		if(s[j]=='(') right++;
		if(s[j]==')') left++;
		if(right<left) {num=1;break;}
	}
	return(num);
}

left(char s[],int i)
{
	int j;
	int left=0,right=0;
	int num=0;
	
	for(j=i-1;j>=0;j--){
		if(s[j]=='(') right++;
		if(s[j]==')') left++;
		if(right>left) {num=1;break;}
	}
	return(num);
}

trans(char s1[],char s2[])
{
	int len;
	int i;
	len=strlen(s1);

	for(i=0;i<len;i++){
		
			s2[i]=' ';

			if(s1[i]==')')
			{
				if(left(s1,i)==1) s2[i]=' ';
				else s2[i]='?';
			}

			if(s1[i]=='(')
			{
				if(right(s1,i,len)==1) s2[i]==' ';
				else s2[i]='$';
			}
	}
	s2[len]='\0';
	return;
}



main()
{
	int i,j;
	int n;
	struct aaa
	{
		char s1[105];
		char s2[105];
	};
	struct aaa line[20];

	scanf("%d\n",&n);



	for(i=0;i<n;i++){
	
		gets(line[i].s1);
		trans(line[i].s1,line[i].s2);
	}

	for(i=0;i<n;i++)
		printf("%s\n%s\n",line[i].s1,line[i].s2);
}
int main()
{
	int j,k,p,d,x;
    char a[101];
	char b[101];
    while(gets(a))
	{
        puts(a);
		for(j=0;a[j]!='\0';j++)
		{

			if(a[j]=='(')
			{
				b[j]='$';
			}
			else 
				if(a[j]==')')
				{
				   b[j]='?';
				}
			    else
				{
				   b[j]=' ';
				}
		}
		b[j]='\0';
		for(k=0;a[k]!='\0';k++)
		{              
		    if(b[k]=='?')
			{
                   d=0;
			       for(p=k-1;p>=0;p--)
			       {
					    if(b[p]=='$')
						{
						    x=p;						
						    d=1;
                            break;
						}
				   }
				   if(d==1)
				   {
			        	b[k]=' ';
			        	b[x]=' ';
				   }
			}	
		}
       for(k=j;k>=0;k--)
	   {
		   if(b[k]!=' '&&b[k]!='\0')
			   break;
	   }
       for(p=0;p<j;p++)
	   {
		   if(b[p]!=' ')
			   break;
	   }
	   for(x=p;x<=k;x++)
		   printf("%c",b[x]);
	   printf("\n");
	}
	return 0;
}
int main()
{
	do{
		char s[101]={0},S[101]={0};
	int i,len,m;

	gets(s);
	strcpy(S,s);

    len=strlen(s);

	if(len==0)
		break;

	m=0;
	do{

     	for(i=m;i<len;i++)
		{
	       if(s[i]==')')
		   {  
	          break;
		}}

	       m=i;
		   
		   
		   if(m==len)
			   break;

		   else 
		   {
			   for(i=m;i>=0;i--)
		           if(s[i]=='(')
				   {
			          s[i]='1';
					  s[m]='1';
			          break;
				   }
		   }

		   m=m+1;

		   
	}while(1);

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

	printf("%s\n",S);
	puts(s);
	}while(1);


	return 0;
}
match(char s[], char r[], int len) // s: ?????r: ????len: ???
{
	char stack[100],c; // ???
	int top=0; //??????????
	int pos; // ??????
	for(pos=0; pos<len; ++pos)
		r[pos]=' '; // ???????????????????
          r[len]='\0';
	for(pos=0; pos<len; ++pos)  //?????????????
	{
		c=s[pos];
		if(c=='(')  stack[top++]=pos;  // ????????
		else if(c==')')
			if(top>0) top--;    // ????????????????????
			else r[pos]='?';   // ???????????????????
	}
	while(top>0) 
	{  pos=stack[--top];
	   r[pos]='$';   // ??????????????????????&?
	}
}
outresult(char s[], char r[])
{
	puts(s);
	putchar('\n');
	puts(r);
	putchar('\n');
}
main()
{
	 char line[101],result[101],ch;
	 int pos=0;
while((ch=getchar())!=EOF) //???????
{
	if(ch!='\n') line[pos++]=ch; // ????
	else  // ???
		{ line[pos]='\0';
                     match(line, result,pos);
		  outresult(line,result);
                     pos=0;
	  }
}
}
void main()
{int i,r,n,x=0,z;
char a[102],b[102];
while(scanf("%c",&a[1])!=EOF)
{   i=1;
	while(a[i]!='\n')
    {   i++;
		scanf("%c",&a[i]);
    }
	for(n=1;n<=i-1;n++) printf("%c",a[n]);
	printf("\n");
	x=0;
    for(n=1;n<=i-1;n++)
		{
			b[n]=' ';
		    if(a[n]==')'&&x==0) b[n]='?'; 
			if(a[n]=='(') x=x+1;
			if(a[n]==')'&&x!=0) x=x-1;
		
		}
	x=0;
    for(n=i-1;n>=1;n--)
        {
            if(a[n]==')') x=x+1;
            if(a[n]=='('&&x==0) b[n]=36;
            if(a[n]=='('&&x!=0) x=x-1;


		}  
	for(z=1;z<=i-1;z++)printf("%c",b[z]);printf("\n");
    for(r=1;r<=i;r++)
	{b[r]='\0';}
}
}
int main()
{
	char word[101]={"0"},temp[101]={"0"};
	int len=0,i=0,j=0,s=0;
	while(cin.getline(word,101))
	{
		cout<<word<<endl;
        len=strlen(word);
		for(i=0;i<len;i++)
			temp[i]=' ';
		temp[i]='\0';
		for(i=0;i<len;i++)              //???????????
		{
			if(word[i]=='(')temp[i]='$';
            if(word[i]==')')temp[i]='?';
		}
		for(i=0;i<len;i++)
		{
			s=1;
			if(word[i]=='(')          //?????????
			{
				
				for(j=i+1;j<len;j++)
				{
					if(word[j]=='(')
						s++;
					if(word[j]==')')
						s--;
					if(s==0)
					{
						temp[i]=' ';
						temp[j]=' ';
						break;
					}
				}
			}
		}
		cout<<temp<<endl;
		strcpy(temp,"0");
	}
	return 0;
}
int main()
{
int i,j;
char a[101];
while(scanf("%s",a)!=EOF)
{
for(i=0;i<strlen(a);i++)
 printf("%c",a[i]);
putchar('\n');
for(i=strlen(a)-1;i>=0;i--)
  {
   if(a[i]=='('){
      for(j=i+1;j<strlen(a);j++)
         if(a[j]==')') {a[i]=' ';a[j]=' ';break;}
       }
   }
for(i=0;i<strlen(a);i++)
  {
   if(a[i]=='(') a[i]='$';
   else if(a[i]==')') a[i]='?';
   else a[i]=' ';
   printf("%c",a[i]);
   }
putchar('\n');
}

return 0;
}
int main()
{
	char str[100][102];
	int i,n=0,j,k,l;
	while(cin.getline(str[n++],102))
	{
		/*if(getchar()=='0')
			break;*/
	}
	for(i=0;i<n;i++)
	{
		j=0;
		cout<<str[i]<<endl;
		while(str[i][j]!='\0')
		{
			if(str[i][j]=='(')
			{
				k=j+1;
				while(str[i][k]!='\0')
				{
					if(str[i][k]==')')//"("????")"
					{
						break;
					}
					k++;
				}
				if(str[i][k]=='\0')
				{j++;continue;}
				l=k-1;
				while(true)//?????
				{
					if(str[i][l]=='(')
						break;
					l--;
				}
				str[i][l]=str[i][k]='a';//?????
			}
			if(str[i][j]!='(')
				j++;
			}
		j=0;
		while(str[i][j]!='\0')
		{
			if(str[i][j]=='(')
			{
				str[i][j]='$';
			}
			else if(str[i][j]==')')
			{
				str[i][j]='?';
			}
			else
				str[i][j]=' ';//???????
			j++;
		}
		cout<<str[i]<<endl;
	}
	return 0;
}
//
//  main.cpp
//  ()pipei
//
//  Created by ? ?? on 13-12-4.
//  Copyright (c) 2013? LEE. All rights reserved.
//

char s[10000];//??????????????????
int countl,countr,sum[1000]={0};
//?????????????????????
int pipei(int i)
{
    
    if(s[i]=='\0') return sum[i]=0;
    if(s[i]=='(')
    {   ++countl;
        pipei(i+1);sum[i]+=sum[i+1];
        if(sum[i]>0)
            //????????????>0????
        {s[i]=' ';countl--;countr--;sum[i]--;}
        //??????1
        else {countl--;s[i]='$';}//????
        return 0;
    }
    
    else if(s[i]==')')
    {countr++;sum[i]++;
    if(countl>=countr)
        {s[i]=' ';//????????
        pipei(i+1);
        sum[i]+=sum[i+1];//????????????????
            return 0; }
    else {countr--;s[i]='?';pipei(i+1);
        sum[i]+=sum[i+1];return 0;}
        //??????????????1????????
    }
    else//?????????
    { s[i]=' ';
      pipei(i+1);
    sum[i]+=sum[i+1];
        return 0;
    }
    return 0;
}

int main()
{
    while(cin)//?????????
    {
        cin.getline(s,1000);//??????
        cout<<s<<endl;
        pipei(0);
        cout<<s<<endl;
        countl=countr=0;memset(sum,0,sizeof(sum));
        //???????????????0

    }
    
    return 0;
}
void pro(char *s)
{
	char a[444];
	char *p;
	int i,j,k,t;
	i=-1;
	p=s;
	while(*p!='\0')
	{
		if (*p=='(') {i++; a[i]=*p;}
	    else if (*p==')')
	    { 
		j=i;
		while ((j>=0) && (a[j]!='(')) j--;
		if (j==-1) {i++; a[i]=*p;} else {a[j]=' '; i++; a[i]=' ';}
	     }
	     else {i++; a[i]=' ';}
		p++;
	}

	a[i+1]='\0';
	strcpy(s,a);
	
}

void print(char *s)
{
	char *p;
	p=s;
	while (*p!='\0') 
	{if (*p=='(') *p='$'; else if (*p==')') *p='?';
	 p++;
	}
     puts(s);
}
int main()
{  
	int l;
	char s[323];
	//freopen("tt.in","r",stdin);
	//freopen("tt.out","w",stdout);
	gets(s);
	while (s[0]!='\0')
	{
		
		puts(s);
		pro(s);
		print(s);
		s[0]='\0';
		gets(s);
	}
	return 0;
}
int main()
{
	char line[101];
	int left[100]={0},right[100]={0}; //left?right???????????????
	while(cin>>line)
	{
		int i,k1=0,k2=0;
		for (i=0;i<strlen(line);i++)
		{
			if (line[i]=='(')
			{
				left[k1]=i;
				k1++;
			}        //????????
			if (line[i]==')')
			{
				if (k1!=0)
				{
					left[k1-1]=0;
					k1--;
				}    //????????????????????
				else
				{
					right[k2]=i;
					k2++;
				}
			}
		}
		char ans[101];
		for (i=0;i<strlen(line);i++)
			ans[i]=' ';
		ans[strlen(line)]='\0';   //?????????????????
		for (i=0;i<k1;i++)
		{
			ans[left[i]]='$';
		}
		for (i=0;i<k2;i++)
		{
			ans[right[i]]='?';
		}                         //??????????
		cout <<line<<endl;
		cout <<ans<<endl;         //??
	}
	return 0;
}
char a[100][100];
int main()
{
	int k=1;
	while(1)
	{
		cin>>a[k];
		cout<<a[k];
		cout<<endl;
		for(int i=0;i<strlen(a[k]);i++)
			if(a[k][i]!='('&&a[k][i]!=')') a[k][i]=' ';
		for(int i=0;i<strlen(a[k])-1;i++)
		{
			int sum =1;
			if(a[k][i]=='(')
			{
			for(int j=i+1;j<strlen(a[k]);j++)
			{
			   if(a[k][j]=='(') sum++;
			   if(a[k][j]==')') sum--;
			   if(sum==0) {a[k][i]=' ';a[k][j]=' ';break;}
			}
			}
		}
		 for(int i=0;i<strlen(a[k]);i++)
		 {
			 if(a[k][i]=='(') a[k][i]='$';
			 if(a[k][i]==')') a[k][i]='?';
			 cout<<a[k][i];
		 }
		 cout<<endl;
		k++;
	}
	return 0;
}