semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void output(int a[],int n)
{
  int i;
  for(i=0;i<n;i++)
    switch(a[i]) 
  {
        case 1:printf("$");break;
        case 0:printf(" ");break;
        case -1:printf("?");break;
  }
  printf("\n");
}
void trans(char s[],int a[],int n)
{
  int i,p[200],k=-1;
  n=strlen(s); 
  for(i=0;i<n;i++) 
     {
       if((s[i]!='(')&&(s[i]!=')')) a[i]=0;
       else if(s[i]=='(')
                {
                   k++; p[k]=i;
                   a[i]=1;   
                }   
            else
                {
                   if(k>-1) 
                      {
                         a[p[k]]=0;
                         k--;
                         a[i]=0;
                      } 
                   else a[i]=-1;                       
                } 
     }
}
void input()
{
  char s[200];
  int a[200],n;
  while(scanf("%s",s)!=EOF)
  {
     n=strlen(s);
     puts(s);
     trans(s,a,n);
     output(a,n);
  }
}
main()
{
  input();
}
int main()
{
	int i, j, k, n;
	char b[101];
	while(cin.getline (b,101))
	{
		j = 0;
		int c[100] = {0}, a[100] = {0};
	    n = strlen(b);
	    for(i = 0; i < n; i++)
		{
		   if(b[i] == '(')
		   {
			   a[j] = i + 1;
			   j++;
		   }
		   if(b[i] == ')')
		   {
			   if(j > 0)
			   {
				   j--;
				   a[j] = a[j + 1];
			   }
			   else
				   c[i] = 1;
		   }
		}
		for(i = 0; i < n; i++)
			cout << b[i];
		cout << endl;
	    for(i = 0; i < j; i++)
		   c[a[i] - 1] = 2;
	    for(i = 0; i < n; i++)
		{
	   	   if(c[i] == 1)
			   cout << "?";
		   else
		   {
			   if(c[i] == 2)
				   cout << "$";
			   else
				   cout << " ";
		   }
		}
		cout << endl;
	};
	return 0;
}
int process(void);
int main(void)
{
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++)
		process();
	return 0;
}

int process(void)
{
	char str[105], tstr[105] = {0};
	cin >> str;
	int len = strlen(str);
	int count = 0;
	for(int i = 0; i < len; i++)
	{
		if(str[i] == '(') count++;
		else if(str[i] == ')') 
		{
			if(count > 0) count--;
			else tstr[i] = '?';
		}
	}
	count = 0;
	for(int i = len-1; i >= 0; i--)
	{
		if(str[i] == ')') count++;
		else if(str[i] == '(')
		{
			if(count > 0) count--;
			else 
			{
				tstr[i] = '$';
			}
		}
	}
	cout << str;
	cout << endl;
	for(int i = 0; i < len; i++)
	{
		if(tstr[i])
			cout << tstr[i];
		else cout << ' ';
	}
	cout << endl;
	return 0;
}
int main()
{
	int n,i,j,k;
	char a[101];
	scanf("%d",&n);
	for(k=1;k<=n;k++)
	{
		scanf("%s",a);
		printf("%s\n",a);
		for(i=strlen(a)-2;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]=='(') putchar('$');
			else if(a[i]==')') putchar('?');
			else putchar(' ');
		}
		putchar('\n');
			
	}
	return 0;
}
int main()
{
int n,i,j,m=0,x,y;
scanf("%d",&n);
char a[n][1000];
getchar();
for(i=0;i<n;i++)
 gets(a[i]);
for(i=0;i<n;i++)
  {for(j=0;a[i][j]!='\0';j++)
     printf("%c",a[i][j]);
     printf("\n");
     x=j;
   for(j=0;j<x;j++)
    {if(a[i][j]==')')
      {if(j==0)a[i][j]='?';
       for(m=1;j-m>=0;m++)
         if(a[i][j-m]=='('){a[i][j-m]=' ';a[i][j]=' ';break;}
         else a[i][j]='?';}
     if(a[i][j]!='('&&a[i][j]!=')'&&a[i][j]!='?')a[i][j]=' ';}
   for(j=x-1;j>=0;j--)
      if(a[i][j]=='(')
         {if(j==x-1)a[i][j]='$';
          else for(m=1;j+m<x;m++)
            if(a[i][j+m]==')'){a[i][j]=' ';a[i][j+m]=' ';break;}
             else a[i][j]='$';}
     for(j=0;j<x;j++)
       printf("%c",a[i][j]);
     printf("\n");
  }
  return 0;
}
int main()
{
    char a[101]={'\0'};
    while((scanf("%s",a))!=-1)
          {
              printf("%s\n",a);
              int b,c,d;
              for(b=0;b<100;b++)
              {
                  if(a[b]==')')
                  {
                      for(c=b-1;c>=0;c--)
                      {
                          if(a[c]=='(')
                             {
                                 a[c]='a';a[b]='a';break;
                             }
                      }
                  }
              }
              for(d=0;d<100;d++)
              {
                  if(a[d]==')')printf("?");
                  else if(a[d]=='(')printf("$");
                  else if(a[d]!='\0')printf(" ");
                  a[d]='\0';
              }
              printf("\n");

          }
}
int pp[120];
void kuohao(char a[])
{
	
	int i,j,len=strlen(a);
    for(i=0;i<=len-1;i++)
	{
		if(a[i]==')')
		{
			for(j=i;j>=0;j--)
			{
				if(a[j]=='(')
				{
					pp[i]=0;
					pp[j]=0;
					a[i]='a';
					a[j]='a';
				    break;
				}
				if(j==0)
					pp[i]=1;
			}
			a[i]='a';
			kuohao(a);
			
		}
		if(i==len-1)
		{
			for(j=0;j<=len-1;j++)
				if(a[j]=='(')
					pp[j]=-1;
			return;
		}
	}
	
}



int main()
{
	char str[200];
	while(cin>>str)
	{
		cout<<str<<endl;
		int i;
		for(i=0;i<=119;i++)
			pp[i]=0;
		kuohao(str);
		for(i=0;i<=strlen(str)-1;i++)
		{
			if(pp[i]==0)
				cout<<" ";
			else if(pp[i]==1)
				cout<<"?";
			else
				cout<<"$";
		}
		cout<<endl;
	}
	return 0;
}
int main()
{
char a[101];
int len;
while(cin >> a)
{
	cout << a << endl << endl;
	len = strlen(a);
	for(int i = 0; i < len ; i++)
	{	if(isalpha(a[i]))
			a[i] = ' ';
		else if(a[i] == '(')
			a[i] = '$';	
		else if(a[i] == ')')
			a[i] = '?';
	}
	for(int temp = 0; temp < len/2 ; temp++)
	{
		for(int i = 0; i < len ; i++)
			if(a[i] == '$')
			{
				for(int j = i+1; j < len ; j++)
				{
					if(a[j] == '$')
					{
						break;
					}
					else if(a[j] == '?')
					{
						a[i] = ' ';
						a[j] = ' ';
						break;
					}
				}
			}
	}
	cout << a << endl << endl;
}	
cin.get();cin.get();
return 0;
}
int main()
{
	char c,a[105]={'\0'},sign[105]={'\0'};//a??????????sign??????????
	int length,i,j;
	cin.getline(a,101,'\n');
	while(a[0]!='\0')
	{
		length=strlen(a);
		cout<<a<<endl;//?????a????
		for(i=0;i<length;i++)
		{
			if(a[i]!=')')//???????????????????
				continue;
			else if(i>0)
			{
				j=i-1;
				while(j>=0&&a[j]!='(')//??????????
					j--;
				if(a[j]=='(')
				{
					a[i]='\0';
					a[j]='\0';
				}
			}
		}
		for(i=0;i<length;i++)//???????????
		{
			if(a[i]=='(')
				sign[i]='$';
			else
			{
				if(a[i]==')')
					sign[i]='?';
				else
					sign[i]=' ';
			}
		}
		cout<<sign;//??????????
		for(i=0;i<105;i++)//a???sign?????
		{
			a[i]='\0';
			sign[i]='\0';
		}
		cin.getline(a,101,'\n');//??????????????????a???\0???????
		if(a[0]!='\0')
			cout<<endl;
	}
	return 0;
}
void match(char *s,char *r,int 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]='$';
}
}
void outresult(char s[],char r[])
{puts(s);puts(r);}
int 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;
}
}
return 0;
}
void check()
{
	char array[103];
	while(cin){  //?????
	cin.getline(array,103);  //?????
	int i,j,len;
	len=strlen(array);  //????
	for(i=0;i<len;i++) cout << array[i] ;  //??????
	cout << endl;
	for(i=0;i<len;i++){  //?????????
		if(array[i]==')'){  //?????
			for(j=i-1;j>=0;j--){  //????????
				if(array[j]=='('){  //???
					array[j]='1';  //??????
					array[i]='1';  //??????
					break;  //????
				}}}}
	for(i=0;i<len;i++){  //????????
		if(array[i]!='(' && array[i]!=')') cout << ' ';
		if(array[i]=='(') cout << '$';
		if(array[i]==')') cout << '?';
	}
	cout << endl;
	}
	return;
}

int main(){
	check();  //??check??
	return 0;
}
main()
{
      int i,j,k,g,ans,max,temp,n,l,t;
      char c[1000];     
      while(scanf("%s",c)!=EOF)
      {
             printf("%s\n",c);
                      for(k=0;k<100;k++)
                      {
                                         for(i=0;c[i]!='\0';i++)
                                         {
                                                                if(c[i]=='(')
                                                                {
                                                                             for(j=i+1;c[j]!='\0';j++)
                                                                             {
                                                                                                    if(c[j]=='(')
                                                                                                    {
                                                                                                                 i=j-1;
                                                                                                                 break;
                                                                                                    }
                                                                                                    if(c[j]==')')
                                                                                                    {
                                                                                                                 c[i]=' ';
                                                                                                                 c[j]=' ';
                                                                                                                 break;
                                                                                                    }
                                                                             }
                                                                }
                                         }
                      }
                      for(i=0;c[i]!='\0';i++)
                      {
                                             if(c[i]=='(') c[i]='$';
                                             else if(c[i]==')') c[i]='?';
                                             else c[i]=' ';
                      }
                      printf("%s\n",c);
      }
      
}
char a[101]={0};
int zuo[101]={0};
int n=0;
void change(int x)
{
	if (a[x]!=0)
	{
		if (a[x]=='(')
		{
			zuo[++n]=x;
		}
		else if (a[x]==')')
		{
			if (n>0)
			{
				a[x]=' ';
				a[zuo[n--]]=' ';
			}
		}
		else
			a[x]=' ';
		change (x+1);
	}

}
int main()
{
	while (cin>>a)
	{
		cout<<a<<endl;
		n=0; 
		change (0);
		for (int i=0;a[i]!=0;i++)
		{
			if (a[i]=='(')
				cout<<"$";
			else if (a[i]==')')
				cout<<"?";
			else 
				cout<<a[i];
		}
		cout<<endl;
	}
	
	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)==0) s2[i]='?';
			}

			if(s1[i]=='(')
			{
				if(right(s1,i,len)==0) 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()
{
	char str[110];
	int length,i=0;
    while(1)
	{
		cin.get(str,110,'\n');
		if(cin.get()==EOF)
			break;
		length=strlen(str);
		for(i=0;i<length;i++)
			cout<<str[i];
		cout<<endl;
		for(i=length-1;i>=0;i--)
		{
			if(str[i]!='('&&str[i]!=')')
				str[i]=' ';
			else if(str[i]=='(')
			{
				str[i]='$';
				for(int j=i;j<length;j++)
				{
					if(str[j]=='?')
					{
						str[i]=' ';
						str[j]=' ';
						break;
					}
				}
			}
			else if(str[i]==')')
				str[i]='?';
		}
		for(i=0;i<length;i++)
			cout<<str[i];
		cout<<endl;
	}
	return 0;
}
int main()
{
	char a[30][120];
	int j,n,i,b[30],k,zuo[30][120],you[30][120];
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		for(j=0;j<=119;j++)
		{
			zuo[i][j]=0;
			you[i][j]=0;
		}
	}
	for(i=1;i<=n;i++)
	{
		k=0;
		
		scanf("%s",a[i]);
		b[i]=strlen(a[i]);
		for(j=b[i]-1;j>=0;j--)
		{
			
			if(a[i][j]=='(') 
			{
				if(k==0)
					zuo[i][j]=1;
				if(k>0)
					
					k-=1;
			}
			
			
			else if(a[i][j]==')') k+=1;
		}
		k=0;
		for(j=0;j<=b[i]-1;j++)
		{
			if(a[i][j]==')') 
			{
				if(k==0)
					you[i][j]=1;
				if(k>0)
					
					k-=1;
			}
			else if(a[i][j]=='(') k+=1;
		}
		printf("%s\n",a[i]);
		for(j=0;j<=b[i]-1;j++)
		{
			if(zuo[i][j]==1) printf("$");
			else if(you[i][j]==1) printf("?");
			else printf(" ");
		}
		printf("\n");
	}
			
			
			
			
			
			
			
			
			
			return 0;
	}
/*
 * ??????.cpp
 *  Created on: 2012-12-1
 *  Author: ???
 */
char a[150];//a????????
int len, num = 0;//len??????num???????????????????????????num+1,???num-1
int f1(int n) {//????a[n]??????????
	if (n == len - 1) {//?a[n]??????a[n]???num+1,?a[n]???num-1
		if (a[n] == '(') {
			num++;
		} else if (a[n] == ')') {
			num--;
		}
		return num;//??num
	}
	if (a[n] == '(') {//????????a[n]???num+1,?a[n]???num-1
		num++;
		return f1(n + 1);
	}
	if (a[n] == ')') {
		num--;
		if (num == 0)
			return 0;
		else
			return f1(n + 1);
	} else//??????????????
		return f1(n + 1);
}
int f2(int n) {//????a[n]??????????
	if (n == 0) {//?a[n]??????a[n]???num+1,?a[n]???num-1
		if (a[n] == '(') {
			num++;
		} else if (a[n] == ')') {
			num--;
		}
		return num;//??num
	}
	if (a[n] == '(') {//????????a[n]???num+1,?a[n]???num-1
		num++;
		if (num == 0)
			return 0;
		else
			return f2(n - 1);
	}
	if (a[n] == ')') {
		num--;
		return f2(n - 1);
	} else//??????????????
		return f2(n - 1);
}
int main() {
	while (cin >> a) {
		len = strlen(a);
		cout << a << endl;//???????
		for (int i = 0; i < len; i++) {//??????????
			if (a[i] != '(' && a[i] != ')')//????????? 
				cout << ' ';
			else if (a[i] == '(') {//????????????
				num = 0;//??num????0
				if (f1(i) > 0)
					cout << '$';
				else
					cout << ' ';
			} else {//????????????
				num = 0;//??num????0
				if (f2(i) < 0)
					cout << '?';
				else
					cout << ' ';
			}
		}
		cout << endl;
	}
	return 0;
}
int main()
{
	int left[101],len,top=0,i,j;
	char str[101];
	while(gets(str))
	{
		top=0;
		puts(str);
		len=strlen(str);
		for(i=0;i<len;i++) //????????str[i]~~
		{
			if(str[i]=='(')
			{
				left[top]=i;
				top++;
			}
			else if(str[i]==')')
			{
				if(top)
				{
					str[i]=' ';
					str[left[top-1]]=' '; //??top??????
					top--;  //??????????????--
				}
			    else
					str[i]='?';
			}
			else
				str[i]=' ';
		}
		for(j=0;j<len;j++)
			if(str[j]=='(')
			str[j]='$';
		puts(str);
	}
	return 0;
}
int show(char a[],int t)
{int i,k,l,j=1;
static int b[101];
puts(a);
for(i=0;i<=t-1;i++)
switch(a[i])
{case '(':a[i]=' ';
          b[j]=i+1;
		  j++;
		  break;
case ')':a[i]=' ';
          b[j]=-(i+1);
		  j++;
		  break;
default: a[i]=' ';
}
j--;
do
{
l=0;
for(k=1;k<=j-1;k++)
if(b[k]>0)
{for(i=k+1;i<=j;i++)
if(b[i]!=0)
break;
if(b[k]*b[i]<0)
{b[k]=0;b[i]=0;l++;}}
}
while(l>0);
for(i=1;i<=j;i++)
{if(b[i]<0)
a[-b[i]-1]='?';
else if(b[i]>0)
a[b[i]-1]='$';
}
puts(a);
return 0;
}
int main()
{int i,n;
scanf("%d\n",&n);
for(i=1;i<=n;i++)
{char a[101];int t;
a[0]='\n';
gets(a);
if(a[0]!='\n')
{t=strlen(a);
show(a,t);}
else break;}
return 0;}
int main()
{
	char str[101];
	int n,i,j,l,k=0;
	char c[101];
	cin >> n;
	for(i=1;i<=n;i++)
	{
		int left=0,right=0;
		int e[101]={0};
		cin >> str;
		l=strlen(str);
		for(j=0;j<l;j++)
		{
			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;
}
void main()
{
	int n,length,k;
	scanf("%d",&n);
	getchar();
	int i;
	char a[500];
	for(i=1;i<=n;i++)
	{
		gets(a);
		puts(a);
		length=strlen(a);
		int j;
		for(j=length-1;j>=0;j--)
		{
			int judge=0;
			if(a[j]!='('&&a[j]!=')')
				a[j]=' ';
			else if(a[j]=='(')
			{
				for(k=j+1;k<length;k++)
				{
					if(a[k]==')')
					{
						a[k]=' ';
						a[j]=' ';
						judge=1;
						break;
					}
				}
				if(judge==0)
					a[j]='$';
			}
		}
		for(j=0;j<length;j++)
		{
			if(a[j]==')')
				a[j]='?';
		}
		puts(a);
	}
}
int main()
{
	char a[101];
	int i,t,j,la,k,bb,pp;
	while(cin.getline(a,101,'\n'))
	{
		cout<<a<<endl;
		la=strlen(a);
		for(i=0;i<la;i++)
		{
			if(a[i]!='('&&a[i]!=')') a[i]=' ';
		}
		t=0;
		while(t==0)
		{
			t=1;
			for(i=la-1;i>=0;i--)
			{
				if(a[i]==')') break;
				if(a[i]=='(')
				{
					a[i]='$';
					break;
				}
			}
			for(i=0;i<la;i++)
			{
				if(a[i]==')')
				{
					a[i]='?';
					break;
				}
				if(a[i]=='(') 
				{
					break;
				}
			}
			for(i=0;i<la;i++)
			{
				if(a[i]=='(')
				{
					for(j=i+1;j<la;j++)
					{
						k=2;
						if(a[j]=='(')
						{
							k=0;
							break;
						}
						if(a[j]==')')
						{
							k=1;
							a[j]=' ';
							break;
						}
					}
					if(k==1) 
					{
						a[i]=' ';
					}
				}
			}
			for(i=0;i<la;i++)
			{
				if(a[i]=='('||a[i]==')')
				{
					t=0;
					break;
				}
			}
		}
		for(i=la-1;i>=0;i--)
		{
			if(a[i]!=' ')
			break;
		}
		bb=i;
		for(i=0;i<la;i++)
		{
			if(a[i]!=' ') break;
		}
		pp=i;
		for(j=pp;j<=bb;j++)
			cout<<a[j];
		cout<<endl;
	}
	return 0;
}
int main()
{
	char str1[102], str2[102];
	int i, j;
	while(cin.getline(str1, 102))
	{
		strcpy(str2, str1);
		int len = strlen(str1);
        for (i = 0; i < len; i++)
		{
			if (str2[i] != '(' && str2[i] != ')')
				str2[i] = ' ';
			else
			{
				if (str2[i] == ')')
				{
					for (j = i; j >= 0; j--)
					{
						if (str2[j] == '(')
						{
							str2[j] = ' ';
							str2[i] = ' ';
							break;
						}
					}
				}
			}
		}
		for (i = 0; i < len; i++)
		{
			if (str2[i] == '(')
				str2[i] = '$';
			if (str2[i] == ')')
				str2[i] = '?';
		}
		cout << str1 << endl << str2 << endl;
	}
	return 0;
}
void main()
{

	int n,i,j,k,m;
	scanf("%d",&n);
			getchar();
	for(i=0;i<n;i++)
	{
			char a[200]={0};
	char b[200]={0};
		gets(a);
		k=strlen(a);
		for(j=0;j<k;j++)
		{
			if(a[j]=='(')
				b[j]='$';
			else if(a[j]==')')
				b[j]='?';
			else b[j]=' ';
		}
//		puts(b);



		for(j=1;j<k;j++)
		{
			if(b[j]=='?')
			{
				for(m=j-1;m>=0;m--)
					if(b[m]=='$')
					{
						b[m]=' ';
						b[j]=' ';
						break;
					}
			}
		}
			printf("%s\n%s\n",a,b);	}
}
int main()
{
    int i,j,m,n,p;
    char str[10001],a[2000],b[2000],c[2000];
    while (gets(str))
    {
        n=strlen(str);
        strcpy(a,str);
        for (i=0;i<n;i++) c[i]=' ';
        for (i=0;i<n;i++)
            if (a[i]==')')
            {
                p=0;
                for (j=i-1;j>=0;j--)
                {
                    if (a[j]=='(')
                    {
                        a[i]='a';
                        a[j]='a';
                        p=1;
                        break;
                    }
                }
                if (p!=1) c[i]='?';
            }
        for (i=n-1;i>=0;i--)
            if (a[i]=='(')
            {
                p=0;
                for (j=i;j<n;j++)
                {
                    if (a[j]==')')
                    {
                        a[i]='a';
                        a[j]='a';
                        p=1;
                        break;
                    }
                }
                if (p!=1) c[i]='$';
            }
        puts(str);
        for (i=0;i<n;i++) printf("%c",c[i]);
        printf("\n");
    }
}
char c[101], a[101] = { ' ' };
int leftpos[101] = { 0 }, leftnum = 0;

void function(int pos)
{
	if (pos == strlen(c))
	{
		a[pos] = '\0';
		cout << c << endl;
		cout << a << endl;
		return;
	}
	if (c[pos] == '(')
	{
		leftpos[leftnum] = pos;
		a[pos] = '$';
		leftnum += 1;
		function(pos + 1);
	}
	else 
	{
		if (c[pos] == ')')
		{
			if (leftnum == 0)
			{
				a[pos] = '?';
				function(pos + 1);
			}
			else
			{
				a[pos] = ' ';
				leftnum -= 1;
				a[leftpos[leftnum]] = ' ';
				function(pos + 1);
			}
		}
		else
		{
			a[pos] = ' ';
			function(pos + 1);
		}
	}
}


int main()
{
	for (; cin.getline(c, 101);)
	{
		function(0);
		leftnum = 0;
		for (int i = 0; i < 101; i++)
			leftpos[i] = 0;
	}
	return 0;
}
char s[101];//?????????????
int l;//??????
int f(int k){//????
int i,j;
for(i = k;i >= 0;i--)//??????
  if(s[i] == '(')
  {
   for(j = i + 1;j < l;j++)
    if(s[j] == ')')//????????????
    {
      s[i] = 'a';//?????????
      s[j] = 'a';
      k = i;
      return f(k);//??
    }
  }
for(i = 0;i < l;i++)//??
{
  if(s[i] == '(')
   cout << '$';
  else if(s[i] == ')')
   cout << '?';
  else
   cout << ' ';
}
cout << endl;
return 0;
}
int main(){
while(scanf("%s",s)!=EOF){
  l = strlen(s);
  cout << s << endl;
  f(l - 1);//????
}
return 0;
}
int main()
{
	char a[110]={'\0'};
	int i,len,mark1[110]={0},judge,k=0,j,k1=0;
	while(cin.getline(a,110))
	{
		len=strlen(a); 
		k=0;     
		for(i=0;i<110;i++)                    
			mark1[i]=0;
		for(i=0;i<len;i++)
		{
			if(a[i]=='('||a[i]==')')  
			{
				if(k==0)
				{
					if(a[i]=='(')
						mark1[k]++;
					else
						mark1[k]--;
					k++;
				}
				else
				{
					judge=0;
					if(a[i]=='(')
						mark1[k]=1;
					else if(a[i]==')')
					{
						mark1[k]=-1;
					for(j=k-1;j>=0;j--)
					{
						if(mark1[j]==1)
						{
							mark1[j]=0;mark1[k]=0;break;
						}
					}
					
						
					}
					
						k++;        
					                       
				}                
			}

		}
		k1=0;
cout<<a<<endl;
		for(i=0;i<len;i++)
		{
			if(a[i]!='('&&a[i]!=')')
				cout<<' ';
			else
			{
				if(mark1[k1]==0)
					cout<<' ';
				else if(mark1[k1]>0)
					cout<<'$';
				else
					cout<<'?';
				k1++;
			}
		}
		cout<<endl;
	}
	return 0;
}
main()
{
    char a[100][101],b[101],c[101];
    int n,m;
    scanf("%d",&n);
    for(m=0;m<n;m++)
    {
    scanf("%s",a[m]);
    }
    for(m=0;m<n;m++)
    {int i=0,j=0,k=0;int n;
        n=strlen(a[m]);
        for(i=0;i<n;i++)
        {b[i]=' ';
            c[i]=' ';}


        for(i=n-1;i>=0;i--)
            if(a[m][i]=='(')
                b[i]=a[m][i];
        for(i=0;i<n;i++)
            if(a[m][i]==')')
                c[i]=a[m][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[m]);
        for(i=0;i<n;i++)
        {if(b[i]!=' ')
               a[m][i]='$';
             if(c[i]!=' ')
                 a[m][i]='?';
            if(b[i]==' '&&c[i]==' ')
                a[m][i]=' ';
        }
        printf("%s\n",a[m]);
    }
}
int main()
{
    int i,j;                                   //??????i`j
    char A[200];                               //??????A?????
    while (cin.getline(A,200,'\n'))
    {
    cout<<A<<endl;
    for (i=0;i<strlen(A);i++)                  //??????'('????$,')'?????,????????
    {
        if (A[i]=='(')
            A[i]='$';
        else
        {
            if (A[i]==')')
                A[i]='?';
            else
                A[i]=' ';
        }
    }
    for (i=0;i<strlen(A);i++)                   //??????'$'?'?'
    {
        if (A[i]=='?')
        {
            for (j=i;j>=0;j--)
            {
                if (A[j]=='$')
                {
                    A[i]=' ';
                    A[j]=' ';
                    break;             
                }  
            }
        }
    }
    cout<<A<<endl;                              //?????
    memset(A,'\0',sizeof(A));
    }
    return 0;
}