semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
	char string[200];
	int leftpos,mark;
	while(scanf("%s",string)==1)
	{
		printf("%s\n",string);
		leftpos=-1;
		mark=0;
		while(mark!=strlen(string))
		{
			if(string[mark]=='(') leftpos=mark;
			else if(string[mark]==')'&&leftpos!=-1)
			{
				string[mark]=' ';
				string[leftpos]=' ';
				mark=-1;
				leftpos=-1;
			}
			mark++;
		}
		for(mark=0;mark<strlen(string);mark++)
		{
			if(string[mark]=='(') string[mark]='$';
			else if(string[mark]==')') string[mark]='?';
			else string[mark]=' ';
		}
		printf("%s\n",string);
		memset(string,0,200);
	}
	return 0;
}
//??????
//??????? 
//?????12.11.29
char in[110],work[110],out[110]; //?????????? 
int len;//?????? 
void pick(int L)//????????? 
{
	for(int i=L-1;i>=0;i--){ //??????????? 
		if (work[i]=='('){
			for(int j=0;j<L-i;j++){  //????????????? 
				if (work[i+j]==')'){
					work[i]=' ';
					work[i+j]=' '; //???????? 
					pick(len); //???? 
					break;}}}}
}
void mark(int L)//?????????? 
{
	for(int i=0;i<L;i++){
		if (work[i]=='(') out[i]='$';
		if (work[i]==')') out[i]='?';} //????? 
}
int main()
{
	while(cin){
		cin.getline(in,110); //?????? 
		len=strlen(in);
		for(int i=0;i<len;i++){
			out[i]=' ';
			work[i]=in[i];}  //???????????? 
		pick(len);
		mark(len);
		for(int i=0;i<len;i++){
			cout<<in[i];}
		cout<<endl;		
		for(int i=0;i<len;i++){
			cout<<out[i];}
		cout<<endl;} //????? 
		return 0;
}
void main()
{
	for(;;)
{
		
		char str[300];
		int i,j,k,a1=0,js1=0,l;
		gets(str);
if(feof(stdin)) break;
		puts(str);
		l=strlen(str);
		for(i=0;i<l;i++)
		{
			if( str[i]=='(') {a1=1;js1++;}
			if( str[i]==')' && a1==0 )  {str[i]='?';}
			if( str[i]==')' && a1==1 )
			{
				if(js1>0) js1--;
				else str[i]='?';
			}
		}
		a1=0;
		js1=0;

				for(;i>=0;i--)
		{
			if( str[i]==')') {a1=1;js1++;}
			if( str[i]=='(' && a1==0 )  {str[i]='$';}
			if( str[i]=='(' && a1==1 )
			{
				if(js1>0) js1--;
				else str[i]='$';
			}
		}

		for(i=0;i<l;i++)
		{
			if(str[i]!='?' && str[i]!='$')
				str[i]=' ';
		}		puts(str);

}
}
int main(){
	int ghus(char a[]);
	void noghus(char a[]);
	int n,i,t,j;
	char b[500];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",b);
		t=ghus(b);
		printf("%s\n",b);
		for(j=1;j<=t;j++){
			noghus(b);
		}
		for(j=0;j<strlen(b);j++){
			if(b[j]=='(') printf("$");
			else if(b[j]==')') printf("?");
			else printf(" ");
		}
		printf("\n");
	}

}


int min(int a,int b){
	if(a<b) return a;
	else return b;
}

int ghus(char a[]){
	int min(int a,int b);
	int m=0,n=0,i;
	for(i=0;i<strlen(a);i++){
		if(a[i]=='(') m++;
		if(a[i]==')') n++;
	}
	return min(m,n);
}

void noghus(char a[]){
	int i,j;
	for(i=0;i<strlen(a)-1;i++){
			if(a[i]=='('){
				for(j=i+1;j<strlen(a);j++){
					if(a[j]==')'||a[j]=='(') break;
				}
				if(a[j]==')'){
					a[i]='o';
					a[j]='o';
				}
			}
	}
}
int main()
{
	char ans[101],a[101];
	int n;
	scanf("%d\n",&n);
	while (n>0)
	{
		gets(a);
		int ll=strlen(a);
		int bb[101]={0};
		int be;
		be=-1;
		int i=0;
		while (i<ll)
		{
			while (a[i]!='(' && a[i]!=')')
			{
				ans[i]=' ';i++;
				if (i>=ll) break;
			}
			if (a[i]=='(')
			{
				bb[i+1]=be;
				be=i+1;
			}
			if (a[i]==')')
			{
				if (be<0) ans[i]='?';
				else
				{
					int t;
					t=bb[be];
					bb[be]=0;
					be=t;
					ans[i]=' ';
				}
			}
			i++;
		}
		for (i=0;i<ll;i++) 
		{
			if (a[i]=='(')
			{
				if (bb[i+1]==0) ans[i]=' ';
				else ans[i]='$';
			}
		}
		for (i=0;i<ll;i++) printf("%c",a[i]);	
		printf("\n");
		for (i=0;i<ll;i++) printf("%c",ans[i]);
		printf("\n");
		n--;
	}
	return 0;
}
void Replace(char s[],int x)
{
	for(int i=x+1;i<strlen(s);i++)
	{
	if(s[i]==')'){s[x]=s[i]=' ';return;}
	if(s[i]=='(')Replace(s,i);
	}
	s[x]='$';
}
void Find(char s[])
{
	for(int i=0;i<strlen(s);i++)
	{
if(s[i]=='$'||s[i]=='?')continue;
		if(s[i]=='(')Replace(s,i);
		else if(s[i]==')')s[i]='?';
		else {
			s[i]=' ';
		}
	}
	return;
}

int main()
{
	char live[101];//string live;
	while(cin>>live)
	{
		cout<<live<<endl;
		Find(live);
		cout<<live<<endl;
	}
	return 0;
}
void braket_match(char *s);
int main()
{
    int n,i;
    char tmp[MAXLEN];
    scanf("%d ",&n);
    for(i=0;i<n;i++)
    {
        gets(tmp);
        braket_match(tmp);
    }
    return 0;
}
void braket_match(char *s)
{
    printf("%s\n",s);
    int j,left[MAXLEN]={-1,-1},left_num=0,left0=1,right[MAXLEN]={-1,-1},right_num=0,right0=1,LEN=strlen(s);
    for(j=0;j<LEN;j++)
    {
        if(s[j]=='(')
            left[++left_num]=j;
        else if(s[j]==')'&&left_num==0)
            right[++right_num]=j;
        else if(s[j]==')'&&left_num>0)
            left[left_num--]=-1;
    }
    for(j=0;j<LEN;j++)
    {
        if(j==left[left0])
        {
            printf("$");
            left0++;
        }
        else if(j==right[right0])
        {
            printf("?");
            right0++;
        }
        else
            printf(" ");
    }
    printf("\n");
}
int main()
{
 int n,i,j;
 char a[101];
 while(gets(a))
 { 
         n=strlen(a);
         for(i=0;i<=n-2;i++)
         {
           printf("%c",a[i]);
         }
         printf("%c\n",a[n-1]);
         for(i=0;i<n;i++)   
         {
            if(a[i]==')')
            {                
               for(j=i;j>=0;j--)
               {
                  if(a[j]=='(')
                  {
                     a[j]=' ';
                     a[i]=' ';
                     break;
                  }
               }
            }
         }
         for(i=0;i<n;i++)
         {
            if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z'||a[i]==' ')
            {
              a[i]=' ';
            }
            else if(a[i]==')')
            {
                 a[i]='?';
            }
            else if(a[i]=='(')
            {
                 a[i]='$';
            }
         }
         for(i=0;i<n;i++)
         {
            printf("%c",a[i]);
         }
         printf("\n");
 }                
    
}
int main(){
	int n;
	scanf("%d", &n);
	char a[200];
	char b[200];
	int c[200];
	int len;
	int k;
	for (int i = 0; i<n; i++)
	{
		scanf("%s", a);
		len = strlen(a);
		k = 0;
		int j = 0;
		for (j = 0; j<len; j++)
		{
			if (a[j] == '(')
			{
				b[j] = '$';
				c[k] = j;
				k = k + 1;
			}
			else if (a[j] == ')')
			{
				if (j == 0)
				{
					b[j] = '?';
				}
				else
				{
					if (k > 0 && b[c[k - 1]] == '$')
					{
						b[c[k - 1]] = ' ';
						b[j - 1] = ' ';
						b[j] = ' ';
						k = k - 1;
					}
					else
					{
						b[j] = '?';
						c[k] = j;
						k = k + 1;
					}
				}
			}
			else
			{
				b[j] = ' ';
			}
		}
		b[j] = '\0';
		printf("%s\n", a);
		printf("%s\n", b);
	}
	return 0;
}
int main()
{
   char a[100][110],c,h;
   int i,j,k,t[100]={0},p,m,n=0;
   while(cin>>a[n])
   {
      n=n+1;
      }
   for(i=0;i<n;i++)
   {
   for(j=0;j<110;j++)
   {
      if(a[i][j]!='\0')
      t[i]=t[i]+1;
      if(a[i][j]=='\0')
      break;
      }
      }
   for(i=0;i<n;i++)
   {
      for(j=0;j<t[i];j++)
      cout<<a[i][j];
      cout<<endl;
      for(j=0;j<t[i];j++)
      {
         if((a[i][j]>='a'&&a[i][j]<='z')||(a[i][j]>='A'&&a[i][j]<='Z'))
         a[i][j]=' ';
         }
      for(j=0;j<t[i]-1;j++)
      {
         if(a[i][j]=='(')
         {
            for(k=j+1;k<t[i];k++)
            {
                if(a[i][k]==')')
                {
                   a[i][j]=' ';
                   a[i][k]=' ';
                   j=-1;
                   break;
                   }
                if(a[i][k]=='(')
                {
                   j=k-1;
                   break;
                   }
            }
            continue;
         }
      }
         for(j=0;j<t[i];j++)
         {
            if(a[i][j]==' ')
              cout<<a[i][j];
            if(a[i][j]=='(')
              cout<<'$';
            if(a[i][j]==')')
              cout<<'?';
            }
         cout<<endl;
         }
         return 0;
         }
int main()
{
	int n=0;
	scanf("%d",&n);
	
	int i=0;
	char string[101];
	char string_copy[101];
	char string_check[101];
	int len=0;
	int index=0;
	int start=0;
	int turn=0;
	char y='n';


	for(i=0;i<=n;i++)
	{
		len=0;
		gets(string);
		while(string[len])
			len++;
         
		strcpy(string_copy,string);

		for(index=0;index<len;index++)
		{
			if(string_copy[index]!='(' && string_copy[index]!=')')
				string_copy[index]=' ';
			if(string[index]=='(' || string[index]==')')
				y='y';
		}
		if(y=='n')
			continue;
           

		for(turn=0;turn<=len/2;turn++)
		{
			y='n';
			start=0;
			for(index=0;index<len;index++)
			{
				if(string_copy[index]=='(')
					start=index;
				if(string_copy[index]==')' && string_copy[start]=='(')
				{
					string_copy[index]=' ';
					string_copy[start]=' ';
				}
			}
		}
        


		strcpy(string_check,string_copy);
		for(index=0;index<len;index++)
		{
			if(string_copy[index]=='(')
				string_copy[index]='$';
			if(string_copy[index]==')')
				string_copy[index]='?';
		}
		if(strcmp(string_copy,string_check)!=0)
		{
			printf("%s\n%s\n",string,string_copy);
		}
		else
		{
			printf("%s\n",string);
		}
	}


	return 0;
}
int main()
{
	char a[200],b[100],n=')';
	int i,j,k,l,m=0;
	while(1)
	{
	    gets(a);
		if(feof(stdin))
			break;
		k=0;
		while(1)
		{
			n=')';m=0;
		for(i=0;i<200;i++)
		{
			if(a[i]=='\0')
				goto here;
			l=0;
			for(j=0;j<k;j++)
			{
				if(i==b[j])
				{
					l=1;
				    break;
				}
			}
			if(l)
				continue;
			else if(a[i]!='('&&a[i]!=')')
				continue;
			else if(n=='('&&a[i]==')')
			{
				b[k]=m;
				b[k+1]=i;
				k=k+2;
				break;
			}
			m=i;
			n=a[i];
		}
		}
here:
		printf("%s\n",a);
		for(i=0;i<200;i++)
		{
			if(a[i]=='\0')
			{
				printf("\n");
				break;
			}
			m=0;
			for(j=0;j<k;j++)
			{
				if(i==b[j])
				{
					m=1;
					break;
				}
			}
			if(m==1)
				printf(" ");
			else if(a[i]=='(')
				printf("$");
			else if(a[i]==')')
				printf("?");
			else
				printf(" ");
		}
	}
	return 0;
}
char p[200],q[200];
int main(){
while(scanf("%s",&p)!=EOF){
memset(q,' ',sizeof(q));
int l=strlen(p);
q[l]=0;
int t=0;
for(int i=0;i<l;i++){
if(p[i]=='(')t++;
else if(p[i]==')'){
if(t>0)t--;else q[i]='?';
}
}
t=0;
for(int i=l-1;i>=0;i--){
if(p[i]==')')t++;
else if(p[i]=='('){
if(t>0)t--;else q[i]='$';
}
}
cout<<p<<endl<<q<<endl;
}
return 0;
}
/*
 * kuohaopipei.cpp
 * ??????
 *  Created on: 2012-12-4
 *      Author: ???
 */
int main() {
	char str1[101], str2[101];                      //????????
	int i, figure = 0, temp[100];                   //figure??????????
	while (cin >> str1) {                           //?????????
		memset(str2, ' ', sizeof(str2));            //??????????
		for (i = 0; i < strlen(str1); i++) {        //????????????????
			if (str1[i] == '(') {
				str2[i] = '$';                      //??????
				temp[figure++] = i;                 //??????
			}
			if (str1[i] == ')') {                   //????????
				if (figure > 0) {                   //???????????
					str2[temp[figure - 1]] = ' ';   //?????????
					figure--;                       //????????????
				} else {
					str2[i] = '?';                  //?????????
				}
			}
		}
		for (i = 0; i < strlen(str1) - 1; i++)      //???????
			cout << str1[i];
		cout << str1[strlen(str1) - 1] << endl;
		for (i = 0; i < strlen(str1) - 1; i++)      //??????????
			cout << str2[i];
		cout << str2[strlen(str1) - 1] << endl;
		figure = 0;
		memset(str1, ' ', sizeof(str1));            //?????
	}
	return 0;
}
int main()
{
	int i,n,b,k,t,m,p;
	char a[1000]={0};
	scanf("%d",&n);
	for(p=0;p<n;p++)
	{
		scanf("%s",a);
		printf("%s\n",a);
		b=strlen(a);
	  for(m=0;m<b;m++)
	  {
		if(a[m]!='('&&a[m]!=')')
		{
			a[m]=' ';
		}
	  }
  	for(i=0;i<b;i++)
	{
		if(a[i]==')')
		{
			for(t=i;t>=0;t--)
			{
				if(a[t]=='(')
				{
					a[i]=' ';
					a[t]=' ';
					break;
				} 
			}
		}
	}
	for(k=0;k<b;k++)
	{
		if(a[k]=='(')
		{
			a[k]='$';
		}
		else if(a[k]==')')
		{
			a[k]='?';
		}
	}
	printf("%s\n",a);
	}
	return 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]] = '$'; //??????????$
}
label[len] = '\0'; //???????
cout << line << endl;
cout << label << endl;
}
return 0;
}
int zuok(char c[],int j, int len)
{
	int i,zuo=1,you=0;
	for(i=j+1;i<len;i++)
	{
		if(c[i]=='(')
		{
			zuo++;
		}
		else if(c[i]==')')
		{
			you++;
		}
		if(zuo==you)
		{
			return 1;
		}
	}
	return 0;
}
int youk(char c[],int j,int len)
{
	int i,you=1,zuo=0;
	for(i=j-1;i>=0;i--)
	{
		if(c[i]=='(')
		{
			zuo++;
		}
		else if(c[i]==')')
		{
			you++;
		}
		if(zuo==you)
		{
			return 1;
		}
	}
	return 0;
}
		

int main()
{
	int n;
	scanf("%d", &n);

	getchar();

	int i;
	for(i=0;i<n;i++)
	{
		char c[200];
		scanf("%s", c);
		getchar();

		printf(c);

		printf("\n");

		int len=strlen(c);

		int j;

		for(j=0;j<len;j++)
		{
			if(c[j]=='(')
			{
				if(!zuok(c,j,len))
				{
					putchar('$');
				}
				else
					printf(" ");
			}

			else if(c[j]==')')
			{
				if(!youk(c,j,len))
				{
					putchar('?');
				}
				else
					putchar(' ');
			}

			else
			{
				putchar(' ');
			}
			
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int i,j,k,l;
	char s1[101],s2[101]={0};
	for (i=1;i>0;)
	{
		gets(s1);
		if(strcmp(s1,s2)==0) {printf("\n"); break;}
		puts(s1);
		l=strlen(s1);
		for (j=0;j<l;j++)
		{
			if(s1[j]!='('&&s1[j]!=')') s1[j]=' ';
			else
			{
				if(s1[j]==')')
				{
					for(k=j;k>=0;k--)
						if (s1[k]=='(') break;
					if (k!=-1) s1[k]=s1[j]=' ';
					else s1[j]='?';
				}
			}
		}
		for (j=0;j<l;j++)
		{
			if (s1[j]=='(') s1[j]='$';
		}
		strcpy(s2,s1);
		puts(s1);
	}
	return 0;
}
int main()
{
	for(;;){
		char a[101]={0},b[101]={0};
		int n,t,s,i;
		if(scanf("%s",a)==EOF) break;
		n=strlen(a);
		for(i=0;i<n;i++)
			if(a[i]=='(')b[i]=1;
			else if(a[i]==')')b[i]=-1;
		for(i=0,s=0;i<n;i++)
				if(b[i]==1){t=i;s=1;}
				else if(b[i]==-1&&s==1){b[t]=0;b[i]=0;i=-1;s=0;}
		for(i=0;i<n;i++)
			if(b[i]==1)b[i]='$';
			else if(b[i]==-1)b[i]='?';
			else b[i]=' ';
			for(i=0;i<n;i++)
	           printf("%c",a[i]);
			printf("\n");
			for(i=0;i<n;i++)
	           printf("%c",b[i]);
			printf("\n");
	}
}
int main()
{
    char a[10][20],b[10][20];
    int i,t,y,u=0;
   while(scanf("%s",a[u])!=EOF)
  {
    strcpy(b[u],a[u]);
    for(t=0;a[u][t]!=0;t++)
    {
        if(a[u][t]!=40&&a[u][t]!=41)
            b[u][t]=32;
        if(b[u][t]==41)
        {
            for(y=t;y>-1;y--)
            {
                if(b[u][y]==40)
                    {b[u][y]=32;b[u][t]=32;break;}
            }
        }
    }
    for(t=0;b[u][t]!=0;t++)
    {
        if(b[u][t]==40)
            b[u][t]=36;
        else if(b[u][t]==41)
            b[u][t]=63;
    }
    puts(a[u]);
    puts(b[u]);
    u++;

    }
    return 0;
}
int main()
{	//int l,t=0;
	char string1[101];
	while(cin.getline(string1,101))
	{//t=0;
	
	cout<<string1<<endl;

	for(int i=1;i<strlen(string1);i++)
	{
		if(string1[i]==')')
	{	
//			if(t==0)
//			{
//				l=i;t=1;
//			}
			for(int j=i-1;j>=0;j--)
			{
				if(string1[j]=='(')
				{	//l=j;
					string1[i]=' ';
					string1[j]=' ';
					break;
				}
			}
		}
		
	}
for(int k=0;k<strlen(string1);k++)
	{
		if(string1[k]=='(')
			cout<<"$";
		else if(string1[k]==')')
			cout<<"?";
		else 
			cout<<" ";
	}
	cout<<endl;
	}
	return 0;
}
int main()
{
	int n;cin>>n;
	while(n--)
	{
		char a[1000];
		cin>>a;
		cout<<a<<'\n';
		int len=strlen(a);
		for(int i=0;i<len;i++)
		{int l=-1,r=-1;
			
			for(int j=i;j>=0;j--)
			{ 
			if(a[j]==')'&&j!=i) break;
			else if(a[j]=='(') {l=j;break;}
		    }
		    for(int j=i;j<len;j++)
			{ 
			if(a[j]=='('&&j!=i) break;
			else if(a[j]==')') {r=j;break;}
		    }
		    if(r!=-1&&l!=-1)
		    {
		    	a[r]='0';a[l]='0';
		    }
		}
		for(int i=0;i<len;i++)
		{
			if(a[i]=='(') cout<<'$';
			else if(a[i]==')') cout<<'?' ;
			else cout<<" ";
		}
cout<<'\n';
	}
	return 0;
}
main()
{
int num,i,j,k,l,len[20];
char a[20][101],b[50][101]={' '};
scanf ("%d",&num);
for (i=1;i<=num;i++) 
{
scanf("%s",a[i]);len[i]=strlen(a[i]);
}
//==2é?í1==== 

for (k=1;k<=num;k++)
{
	for (i=0;i<len[k];i++)
	{
		if (a[k][i]=='(') b[k][i]='$';
		else if (a[k][i]==')') b[k][i]='?';
		else b[k][i]=' ';
	}
	for (i=0;i<len[k]-1;i++)
	{
		if (b[k][i]=='$')
		{
			for (j=i+1;j<len[k];j++)
			{
				if (b[k][j]=='?')
				{
					for (l=j-1;l>=i;l--)
					{
						if (b[k][l]=='$')
						{
							b[k][l]=' ';b[k][j]=' ';break;
						}
					}
				}
			}
		}
	}
	

for (i=0;i<len[k];i++) printf ("%c",a[k][i]);
	printf ("\n");
for (i=0;i<len[k];i++) printf ("%c",b[k][i]);
	printf ("\n");
	
	
	
} 




}
int main()
{
	int i,j,k;
	char a[150]={'0'},b[150]={'0'};
	for(;~scanf("%s",&a);)
{
	i=strlen(a);
	for(j=0;j<i;j++) {
	if(a[j]=='(') b[j]='$';
	else if(a[j]==')') b[j]='?';
	else b[j]=' ';
	}
	for(j=0;j<i;j++)
	for(k=j-1;k>=0;k--){
		if(b[k]=='$'&&b[j]=='?') 
		{b[k]=' ';b[j]=' ';}
	}
    for(k=0;k<i;k++)
    printf("%c",a[k]);
    printf("\n");
    for(k=0;k<i;k++)
    printf("%c",b[k]);
    printf("\n");
  
}
  return 0;
}
int main()
{
	char s[2][101],c;
	int i,len,flag=0,count=0;
	while(scanf("%s",s[0])!=EOF)
	{
		len=strlen(s[0]);
		for(i=0;i<len;i++)
		{
			c=s[0][i];
			if(c=='(') flag++;
			if(c==')') flag--;
			if(flag>=0)
			{
				s[1][i]=' ';
				continue;
			}
			if(flag<0) 
			{
				s[1][i]='?';
				flag=0;
			}
		}
		flag=0;
		for(i=len-1;i>=0;i--)
		{
			c=s[0][i];
			if(c==')') flag++;
			if(c=='(') flag--;
			if(flag<0) 
			{
				s[1][i]='$';
				flag=0;
			}
		}
		flag=0;
		s[1][len]='\0';
		puts(s[0]);
		puts(s[1]);
		for(i=0;i<len;i++)
			s[0][i]=s[1][i]=0;
	}
	return 0;
}
int main()
{
	char line[101];
	int length, i, j;
	while (cin.getline(line, 101))
	{
		length = strlen(line);
		for (i = 0; i < length; i++)
			cout << line[i];
		cout << endl;
		for (i = 0; i < length; i++)
		{
			if (line[i] == ')')
			{
				for (j = i; j >= 0; j--)
				{
					if (line[j] == '(')
					{
						line[i] = 0;
						line[j] = 0;
						break;
					}
				}
			}
		}
		for (i = 0; i < length; i++)
		{
			if (line[i] == '(')
				cout << "$";
			if (line[i] != '(' && line[i] != ')')
				cout << " ";
			if (line[i] == ')')
				cout << "?";
		}
		cout << endl;
	}
	return 0;
}
main()
{
	char c[100]={0},d[100]={0};
	int l,i,j,s;
	while(scanf("%s",c)!=EOF)
	{
	l=strlen(c);
	for(i=0;i<l;i++)
	{
		if(c[i]=='(') d[i]='$';
		else if(c[i]==')') 
		{
			d[i]='?';
			for(j=i-1,s=1;j>=0&&s==1;j--)
			{if(d[j]=='$') {d[j]=d[i]=' ';s=0;}}
		}
		else d[i]=' ';
	}
	for(i=0;i<l;i++) printf("%c",c[i]);printf("\n");
	for(i=0;i<l;i++) printf("%c",d[i]);printf("\n");
	}
}
int findRight(char s[], int pos, int l){
	int t;
	if (s[pos]=='\0') return -1;
	if (s[pos]=='('){
		t=findRight(s,pos+1,l+1);
		if (t==-1){
			s[pos]='$';
			return -1;
		}else {
			s[pos]=' ';
			return findRight(s,t+1,l);
		}
	}else if (s[pos]==')'){
		if (l==0){
			s[pos]='?';
			findRight(s,pos+1,l);
		}
		else {
			s[pos]=' ';
			return pos;
		}
	}else {
		s[pos]=' ';
		return findRight(s,pos+1,l);
	}
}
int main(){
	char s[1000];
	for (;cin >> s;){
		cout<<s<<'\n';
		findRight(s,0,0);
		cout<<s<<'\n';
	}
}
int main()
{
	int i,j,flag[101] = {0};
	char str[101];
	while(cin >> str)
	{
	for (i = 0; i < strlen(str); i ++)
	{
		cout << str[i];
		if (str[i] == ')')
		{
			for (j = i; j >= 0; j --)
			{
				if (str[j] == '(' && flag[j] == 0)
				{
					flag[i] = 1;
					flag[j] = 1;
					break;
				}
			}
		}
	}
	cout << endl;
	for (i = 0; i < strlen(str); i ++)
	{
		if (str[i] == '(' && flag[i] == 0)
			cout << "$";
		else if (str[i] == ')' && flag[i] == 0)
			cout << "?";
		else
			cout << " ";
	}
	cout << endl;
	memset(flag,0,sizeof(flag));
	}
	return 0;
}
/*
 * BracketMatch.cpp
 *
 *  Created on: 2012-11-29
 *  Author: ??
 *  ?????????
 */


char a[120] ;
int len = 0 ;

void bracket( int i )
{
	if( i < 0 ) return ;
	if( a[i] != '(' )  bracket( i-1 ) ;
	if( a[i] == '(' )
	{
	    for( int k = i ; k < len ; k++ )        //?????
	    {
		    if ( a[k] == ')' )
		    {
		    	a[i] = 'x' ;
		    	a[k] = 'x' ;            //??
		    	break ;
		    }
	    }
	    bracket( i-1 ) ;           //????
	}
}

int main()
{
	while( cin >> a )
	{
		cout << a << endl ;
		len = strlen(a) ;
		bracket( len - 1 ) ;
		for( int k = 0 ; k < len ; k++ )
		{
			if( a[k] == '(' ) cout << "$" ;
			else if ( a[k] == ')')  cout << "?" ;     //??????
			else cout << " " ;
		}
		cout << endl ;
		for( int i = 0 ; i < 120 ; i++ )
			a[i] = '\0' ;                 //????
	}
	return 0 ;
}
int main(int argc, char* argv[])
{
    char a[110],b[110];
	while(scanf("%s",&a)==1)
	{
		strcpy(b,a);
		int len=strlen(a);
		int i,t,s,q=1;
		while(q)
		{
			q=0;
			t=-1;s=-1;
			for(i=0;i<len;i++)
			{
				if(a[i]==40)
					t=i;
				else if(a[i]==41)
				{
					if(t>=0)
					{
						a[t]=48;
						a[i]=48;
						q=1;
						break;

					}
					    
				}
			}


		}
		for(i=0;i<len;i++)
			printf("%c",b[i]);
		printf("\n");
		for(i=0;i<len;i++)
		{
			if(a[i]=='(')
				printf("$");
			else if(a[i]==')')
				printf("?");
			else 
				printf(" ");
		}
			printf("\n");
	
		
	}
	return 0;
}
/*
 * ??????.cpp
 *
 *  Created on: 2011-1-8
 *      Author: angel
 */

int main() {
	int i = 0,j=0;

	char s[101] = { 0 };
	while (cin >> s) {
		int a = 0, b = 0;
	cout << s << endl;
	int flag[101] = { 0 };
	for (i = 0; i <= strlen(s) - 1; i++) {
		if (s[i] == '(')
			a++;
		if (s[i] == ')') {
			a--;
			if (a < 0) {
				a = 0;
				flag[i] = -1;
			}
		}
	}
	for (i = strlen(s) - 1; i >= 0; i--) {
		if (s[i] == ')')
			b++;
		if (s[i] == '(') {
			b--;
			if (b < 0) {
				b = 0;
				flag[i] = 1;
			}
		}
	}
	for (i=0;i<strlen(s);i++)
	{if (flag[i]!=0) break;}
	for (j = strlen(s) - 1; j >= 0; j--) {
		if (flag[j]!=0) break;
	}
	for (i = i; i <=j; i++) {
		if (flag[i] == 1)
			cout << "$";
		else if (flag[i] == 0)
			cout << " ";
		else if (flag[i] == -1)
			cout << "?";

	}	cout<<endl;}
	return 0;

}
int main()
{
	char a[100][101],b[100][101],c='(',d=')';
	int i,j,k;
	for(k=0;k<=20;k++)
	{
		for(i=0;i<101;i++) a[k][i]=0;
	    gets(a[k]);
		strcpy(b[k],a[k]);
	    for(i=0;i<101&&a[k][i]!=0;i++)
		     if(a[k][i]==d)
			     for(j=i-1;j>=0;j--)
				     if(a[k][j]==c) {a[k][i]=a[k][j]=1;break;}
        for(i=0;i<101&&b[k][i]!=0;i++) printf("%c",b[k][i]);
		printf("\n");
	    for(i=0;i<101&&a[k][i]!=0;i++)
		    if(a[k][i]==c) printf("$");
		    else if(a[k][i]==d) printf("?");
		         else printf(" ");
		printf("\n");
	}
	return 0;
}
int main(){
  while(!cin.eof()){
    char str[MAX],ans[MAX];
    memset(str,0,sizeof(str));
    memset(ans,0,sizeof(ans));
    cin>>str;
    
    for(int i=0;i<strlen(str);i++) ans[i]=' ';
    
    int sign=0;
    for(int i=0;i<strlen(str);i++){
      if(str[i]=='('){
      
	sign++;
	ans[i]=sign+'0';
      }
      else if(str[i]==')'){
	if(sign>0){
	  ans[i]=sign+'0';
	  sign--;
	}
	else ans[i]='?';
      }
    }
    for(int i=0;i<strlen(str);i++){
      if(ans[i]!=' '&&str[i]=='('){
	int ok=0;
	int j;
	for(j=i+1;j<strlen(str);j++){
	  if(ans[j]==ans[i]){
	    ok=1;
	    break;
	  }
	}
	if(!ok) ans[i]='$';
	else ans[i]=ans[j]=' ';
      }
    }
    ans[strlen(str)]='\0';
    cout<<str<<endl;
    cout<<ans;
    cout<<endl;
  }
  return 0;
}
int main()
{
	char a[101];
	int i,j,k,len,p;
	while(cin.getline(a,101))
	{
		cout<<a<<endl;
		len=strlen(a);
		for(i=len;i>=0;i--)
		{
			
			 if (a[i]=='(')
			 {
				for(j=i+1;a[j]!='\0';j++)
				{
					if (a[j]==')')
					{
						a[i]='1';
						a[j]='1';
						break;
					}
				}
				if(a[i]=='1') continue;
				else a[i]='$';
			 }
		
		}
		for(p=0;a[p]!='\0';p++)
		{
			if(a[p]==')')
			{
				for(j=p-1;j>=0;j--)
				{
					if (a[j]=='(')
					{
						a[p]='1';
						a[j]='1';
						break;
					}
				}
				if(a[p]=='1') continue;
				else a[p]='?';
			}
		}
		for(k=0;a[k]!='\0';k++)
		{
			if (( a[k]!='$')&&( a[k]!='?'))
				a[k]=' ';
		}
		cout<<a<<endl;
		
	}
	return 0;
}