semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
char a[1000];
int judge(int,int);
int main()
{for(;cin>>a;){
	cout<<a<<endl;
	judge(0,0);
	cout<<a<<endl;
}
return 0;
}
int judge(int i,int l)
{int t;
if(a[i]=='\0') return -1;
if(a[i]=='('){t=judge(i+1,l+1);
a[i]=(t==-1)?'$':' ';
return (t==-1)?-1:judge(i+1,l);
}

else if(a[i]==')'){a[i]=l==0?'?':' ';
return (l==0)?judge(i+1,l):i;
}
else {a[i]=' ';return judge(i+1,l);}


	}
int main()
{
 int i,j,k,l,n,m;
 char a[150],b[150];
 for(m=0;m<1000;m++)
 {for(i=0;i<150;i++)
   a[i]=0,b[i]=0;
  scanf("%s",a);
  l=strlen(a);
  if(l==0) break;
  for(i=0;i<l;i++)
   b[i]=a[i];
  for(i=0;i<l;i++)
   for(j=0;j<l;j++)
    if(a[j]=='(')
    {for(k=j+1;k<l;k++)
     {if(a[k]=='(') break;
      if(a[k]==')') 
      {a[j]='a',a[k]='a';break;}}}
  printf("%s\n",b);
  for(i=0;i<l;i++)
  {if(a[i]=='(') printf("$");
   else if(a[i]==')') printf("?");
   else printf(" ");}
  printf("\n");
  
  }
}
int i,s;
char a[101];
void f(int x)
{
	a[x]='$';
	if(x<s-1){
	for(int j=x+1;j<s;j++)
		{
		if(a[j]=='(')
			{i=j;f(j);}
		else if(a[j]==')')
			{
			a[x]=' ',a[j]=' ';
			return;
			}
		else
			if(a[j]!='$')
			a[j]=' ';
		}}
	return;
}
int main()
{
	int j=0;
	while(cin.getline(a,101))
	{
		if(j!=0)
			cout<<endl;
		cout<<a;
		s=strlen(a);
		for(i=0;i<s;i++)
		{
		if(a[i]=='(')
			f(i);
		else if(a[i]==')')
			a[i]='?';
		else
			a[i]=' ';
		}
		j++;
	cout<<endl<<a;
	}
}
int main()
{
	char words[101]={0};
	while(cin>>words)
	{
		cout<<words<<endl;
		int i=0,j=0;
		for(i=0;words[i]!=0;i++)
		{
			if(words[i]!='('&&words[i]!=')')
				words[i]=' ';
			if(words[i]==')')
			{
				for(j=i-1;j>=0;j--)
				{
					if(words[j]=='(')
					{
						words[j]=' ';
						words[i]=' ';
						break;
					}
				}
			}
		}
		for(i=0;words[i]!=0;i++)
		{
			if(words[i]=='(')
				words[i]='$';
			if(words[i]==')')
				words[i]='?';
		}
		cout<<words<<endl;
	}
	return 0;
}
int main()
{
	char str[N+1],flag[N+1];
	int i,j,sstack[N+1];
	while(scanf("%s",str)!=EOF)
	{
		printf("%s\n",str);
		j=0;
		for(i=0;i<strlen(str);i++)
		{
			if(str[i]=='(')
				sstack[j++]=i;
			else if(str[i]==')')
			{
				if(j<=0)
					flag[i]='?';
				else 
				{
					j--;
					flag[sstack[j]]=' ';
					flag[i]=' ';					
				}
			}
			else
				flag[i]=' ';
		}
		for(i=0;i<j;i++)
			flag[sstack[i]]='$';
		flag[strlen(str)]='\0';
		printf("%s\n",flag);
	}
	
	return 0;
}
void print(int n1,int z[500],char s[500]);
void search(int a[500],int h);
char s[500];
int z[500];
int main()
{
	while(scanf("%s",s)!=EOF)
	{
	int h,a,l1=0,l2=0;
	h=strlen(s);
	for(a=0;a<=h-1;a++)
	{	if(s[a]=='(')
		{	z[a]=1;
		}
	    else
		{
	          if(s[a]==')')
			  {   z[a]=2;		   
			  }
			  else

			  {
				  z[a]=0;
			  }
		}

    }
	search(z,h);
	print(h,z,s);
	}
    return 0;

}
void search(int z[500],int h)
{
	int k,m,n;
    for(m=1;m<=h-1;m++)
 	  for(k=0;(k+m)<=(h-1);k++)
		if((z[k]==1)&&(z[k+m]==2))
		{   z[k]=0;z[k+m]=0;
		}
}
void print(int n1,int z[500],char s[500])
{
	int a;
	for (a=0;a<n1;a++)
	{ 
		printf("%c",s[a]);
	}
		printf("\n");
	for (a=0;a<n1;a++)
	{
		if(z[a]==0)   
	 printf(" ");
	if(z[a]==1)   
	 printf("$");
	if(z[a]==2)   
	 printf("?");
	}
	printf("\n");
}
void match(char a[102])
{
    char b[102]={0};
    long l=strlen(a);
    int i,left[102]={0},cnt_left=0;
    for(i=0;i<l;i++)
    {
        if(a[i]=='(')
        {cnt_left++;left[cnt_left]=i;b[i]='$';}
        else
        {
            if(a[i]==')')
            {
                if(cnt_left==0)
                    b[i]='?';
                else
                {b[i]=' ';b[left[cnt_left]]=' ';cnt_left--;}
            }
            else
                b[i]=' ';
        }
    }
    b[l]='\0';
    puts(a);
    puts(b);
}

int main()
{
    char a[102]={0},c;
    int i=-1;
    while((c=getchar())!=EOF)
    {
        if(c!='\n')
        {
            i++;
            a[i]=c;
        }
        else
        {
            i++;a[i]='\0';match(a);i=-1;
        }
    }
    return 0;
}
int main() {
	char a[110] = { 0 };
	while (cin >> a) {
		cout << a << endl;
		int zuo[110] = { 0 }, z = 0;
		int you[110] = { 0 }, y = 0;
		for (int i = 0; i < strlen(a); i++) {
			if (a[i] == '(')
				zuo[z++] = i;
			if (a[i] == ')')
				you[y++] = i;
		}
		for (int i = 0; i < y; i++) {
			for (int j = z - 1; j >= 0; j--) {
				if (zuo[j] < you[i]) {
					zuo[j] = 200;
					you[i] = -100;
					break;
				}
			}
		}
		for (int j = 0; j < strlen(a); j++) {
			a[j] = ' ';
		}
		for (int j = 0; j < z; j++) {
			if (zuo[j] != 200)
				a[zuo[j]] = '$';
		}
		for (int j = 0; j < y; j++) {
			if (you[j] != -100)
				a[you[j]] = '?';
		}

		cout << a << endl;

	}
	return 0;
}
int main()
{
char in[1000];
while(cin.getline(in,1000,'\n')){
	//cin.getline(in,100,'\n');
	if(in[0]=='\0')break;
	int len;
	len=strlen(in);
	int i,j,k;
	int flag[100]={0};
	for(i=0;i<=len-1;i++){
		if(in[i]=='('){
			flag[i]=2;//2=$
		}
		if(in[i]==')'){
			flag[i]=3;//3=?
		}
	}
	for(i=len-1;i>=0;i--){
		if(flag[i]==1)continue;
		if(in[i]=='('){
			for(j=i+1;j<=len-1;j++){
				if(flag[j]==1)continue;
				if(in[j]==')'){
					flag[j]=1;
					flag[i]=1;
				}
				if(in[j]==')')break;
			}
		}
	}
	cout<<in<<endl;
	int temp,t;
	int num=0;
	for(i=len-1;i>=0;i--){
		if(flag[i]==2||flag[i]==3){
			temp=i;
		}
		if(flag[i]==2||flag[i]==3)break;
	}
	for(i=0;i<=len-1;i++){
		if(flag[i]==2||flag[i]==3){
			t=i;
		}
		if(flag[i]==2||flag[i]==3)break;
	}
	for(j=0;j<=len-1;j++){
		if(flag[i]==0||flag[i]==1){
			num++;
		}
	}
	if(num<len){

		for(i=t;i<=temp;i++){
			if(flag[i]==0||flag[i]==1){
				cout<<" ";
			}
			if(flag[i]==2){
				cout<<"$";
			}
			if(flag[i]==3){
				cout<<"?";
			}
		}
	cout<<endl;
	}
}
return 0;
}
char input[150], output[150];
int main()
{
        int n,j;
		scanf("%d",&n);
		for(j=0;j<n;j++)
		{
			scanf("%s",input);
            memset(output,0,sizeof(output));
            int count1=0,count2=0;
            int i;
            for(i=0;i<strlen(input);++i)
            {
				output[i]=' ';
                if(input[i]==')')                       
				{
					if(count1<=0) output[i]='?';
                    else count1--;
                }
                else if(input[i]=='(') count1++;
            }
            for(i=strlen(input);i>=0;--i)
            {
				if(input[i]=='(')
                {
                    if(count2<=0) output[i]='$';
                    else count2--;
                }
                else if(input[i]==')') count2++;
            }
            printf("%s\n%s\n",input,output);
        }
        return 0;
}
int main()
{
int m,k;
scanf("%d",&m);
getchar();
for(k=0;k<m;k++)
{
	int i,f,len,j;
	char a[200],b[200],c[200];
	gets(a);
	len=strlen(a);
	strcpy(c,a);
	b[len]='\0';
	for(i=0;i<len;i++)
	{
		b[i]=' ';
	}
	for(i=len-1;i>=0;i--)
	{
		if(a[i]=='(')
		{
			f=0;
			for(j=i;j<len;j++)
			{
				if(a[j]==')')
				{
					f=1;
					a[j]='a';
					break;
				}
			}
			if(f==0)
			{
				b[i]='$';
			}
			

		}
	}
	for(i=0;i<len;i++)
	{
		if(a[i]==')')
			{
				b[i]='?';
			}
	}
	printf("%s\n%s\n",c,b);
}
}
int main()
{
	char str1[101];
	char str2[101];
	int a[101];
	int l,i,j,temp;
	while(cin>>str1)//??????????????
	{
		l=strlen(str1);//????
		for(i=0;i<l;i++)
		{
			if(str1[i]=='(')
				a[i]=1;
			else if(str1[i]==')')
				a[i]=-1;
			else
				a[i]=0;
		}//?????????????
		for(i=0;i<l;i++)
		{
			if(a[i]==1)//????????
			{
                temp=0;
				for(j=i;j<l;j++)//????????
				{
					temp=temp+a[j];
					if(temp==0)
					{
						a[i]=0;
						a[j]=0;
						break;//??????????????????0
					}
				}
			}
		}
		for(i=0;i<l;i++)//?????????????
		{
			if(a[i]==1)
				str2[i]='$';
		     else if(a[i]==-1)
				str2[i]='?';
			 else 
				 str2[i]=' ';
		}
		str2[l]='\0';
		cout<<str1<<endl;
		cout<<str2<<endl;
		cout<<endl;
	}
	return 0;
}
void Find( char * );
int main()
{
	int i;
	char str[ 101 ];
	char mark[ 101 ];


	while ( cin.getline( str, 101 ) )
	{
		memset( mark, 0, sizeof( mark ) );
		for ( i = 0; i < strlen( str ); i++ )
		{
			if ( str[ i ] == '(' )
			{
				mark[ i ] = '$';
			}
			if ( str[ i ] == ')' )
			{
				mark[ i ] = '?';
			}
			if ( str[ i ] != '(' && str[ i ] != ')' ) 
			{
				mark[ i ] = ' ';
			}
		}
		Find( mark );
		for ( i = strlen( mark ) - 1; i >= 0; i-- )
			if ( mark[ i ] != ' ' )
			{
				mark[ i + 1 ] = 0;
				break;
			}
		for ( i = 0; i < strlen( mark ); i++ )
			if ( mark[ i ] != ' ' )
			{
				strcpy( mark, mark + i );
				break;
			}
		cout << str << endl << mark << endl;
	}
}

void Find( char mark[] )
{
	int i, j = 0;
	for ( i = 0; i < strlen( mark ); i++ )
	{
		if ( mark[ i ] == '$' )
		{
			for ( j = i + 1; j < strlen( mark ); j++ )
			{
				if ( mark[ j ] == '$' )
				{
					break;
				}
				else
				{
					if ( mark[ j ] == '?' )
					{
						mark[ j ] = ' ';
						mark[ i ] = ' ';
						Find( mark );
						return;
					}
				}
			}
		}
	}
}
int main(int argc, char* argv[])
{
	int num=0,i,l,j,k,n,left[101];
	char str[101],str2[101];
	while(gets(str))
	{
		strcpy(str2,str);
		for(i=0,l=0;str[i];i++)
		{
			if(str[i]=='(')
			{
				left[l]=i;l++;
			}
		}
		for(n=l-1;n>=0;n--)
		{
			for(k=left[n]+1;str[k];k++)
			{
				if(str2[k]==')')
				{
					str2[left[n]]=' ';str2[k]=' ';break;
				}
			}
		}
		for(j=0;str[j];j++)
		{
			if(str2[j]=='(')str2[j]='$';
			else if(str2[j]==')')str2[j]='?';
			else str2[j]=' ';
		}
		printf("%s\n",str);
		printf("%s\n",str2);
	}
	return 0;
}
int main()
{
	char kuohaoin[201]={0},kuohao1[201]={0},kuohaoout[201]={0};
	int i,j,len;
	while(cin>>kuohaoin)//??????
	{
		len=strlen(kuohaoin);//????
		for(i=0;i<len;i++)
		{
			kuohao1[i]=kuohaoin[i];//????????????????
			kuohaoout[i]=' ';
		}
		for(i=len-1;i>=0;i--)//????
		{
			if(kuohao1[i]=='(')//????
			{
				kuohaoout[i]='$';//??????????$
				for(j=i+1;j<len;j++)//?????????)
				{
					if(kuohao1[j]==')')//???
					{
						kuohao1[j]='s';//?????????2???
						kuohaoout[i]=' ';//?????????
						kuohao1[i]='s';
						break;
					}
				}
			}
		}
		for(i=0;i<len;i++) if(kuohao1[i]==')')kuohaoout[i]='?';//??????????)
		cout<<kuohaoin<<endl;
		cout<<kuohaoout<<endl;
		for(i=0;i<len;i++)//????
		{
			kuohaoin[i]=0;
			kuohao1[i]=0;
			kuohaoout[i]=0;
		}
	}
	return 0;
}
int DO(char *SPE,int length)
{
	int k1=0;
	char *p1=NULL,*p2=NULL;
	for(int i=0;i<length;i++)
	{
		if(SPE[i]=='$')
		{
			k1++;
			p1=SPE+i;
		}
		else if(SPE[i]=='?')
		{
			p2=SPE+i;
			if(k1!=0)
			{
				*p1=' ';*p2=' ';return DO(SPE,length);
			}
		}
	}
	return 0; 
}
int main(void)
{
	char SPE[101];
	while(~scanf("%s",SPE))
	{
		puts(SPE);
		int length=strlen(SPE);
		for(int i=0;i<length;i++)
		{
			if(SPE[i]!='('&&SPE[i]!=')') SPE[i]=' ';
			else if(SPE[i]=='(') SPE[i]='$';
			else if(SPE[i]==')') SPE[i]='?';
		}
		DO(SPE,length);
		puts(SPE);
	}
	return 0;
}
int main()
{
	char a[100];
	int b[100] = {0};
	while (cin.getline(a,101))
	{
		cout << a << endl;
		char a1[100] = " ";
		int len = strlen(a);
		int i = 0;
		int lnum = 0, rnum = 0;
		for (i = 0; i < len; i++)
		{
			if (a[i] == '(')
			{
				b[lnum] = i;
				lnum++;
			}
			if (a[i] == ')')
			{
				rnum++;
				if (rnum > lnum)
				{	a1[i] = '?';
					rnum--;
				}
				else
				{
					lnum--;
					rnum--;
				}
			}
		}
		for (i = 0; i < lnum; i++)
			a1[b[i]] = '$';
		for (i = 0; i < len; i++)
		{
			if ((a1[i] == '$')||(a1[i] == '?'))
				cout << a1[i];
			else
				cout << " ";
			
		}
		cout << endl;
	}
	return 0;
}
int main ()
{
	int i,j,n;
	char a[100],b[100];
	while(gets(a)!=NULL)
	{
	    n=strlen(a);
		for(i=0;i<n;i++) b[i]=' ';
        for(i=0;i<n;i++)
		{
			if((a[i]=='(')||(a[i]==')')) b[i]=a[i];
		}
		for(i=0;i<n;i++) printf("%c",a[i]);
		printf("\n");
		for(i=n-1;i>=0;i--)
		{
			if(b[i]=='(')
			{
				for(j=i;j<n;j++)
				{
					if(b[j]==')') 
					{
						b[i]=' ';b[j]=' ';a[i]=' ';a[j]=' ';
						break;
					}
				}
			}
		}
		for(i=0;i<n;i++)
		{
			if(a[i]=='(') a[i]='$';
			else if(a[i]==')') a[i]='?';
			else a[i]=' ';
		}
		for(i=0;i<n;i++) printf("%c",a[i]);
		printf("\n");
	}
}
char x[110]={'\0'},y[110]={'\0'};
int i,j,k,l;
int f()
{
	for(i=0;i<l-1;i++)
			{
				for(j=1;i+j<l;j++)
				{
					if(x[i]=='('&&x[i+j]==' ') {continue;}         //???????????
					if(x[i]=='('&&x[i+j]=='(') {break;}          //?????????????
					if(x[i]=='('&&x[i+j]==')') {x[i]=' ';x[i+j]=' ';}      //??????????????????
				}
			}
	k++;
	if(k==l) {return 0;}
	if(k!=l) {f();}
}
int main()
{
	while(cin.getline(x,110,'\n'))
	{
		strcpy(y,x);
		l=strlen(x);
		for(i=0;i<l;i++)
			{
				if(x[i]!='('&&x[i]!=')')  {x[i]=' ';}
			}        //?????????????
			k=0;
			f();
			cout<< y <<endl;  //????????
		for(i=0;i<l;i++)     //???????
		{
			if(x[i]=='(') {cout<<"$";}
			if(x[i]==')') {cout<<"?";}
			if(x[i]==' ') {cout<<" ";}
		}
		cout<<endl;
	}
	return 0;
}
char a[150];
int find(int x,int y)//x???????y?????? 
{
    int b;//b???????????????????????
    if(a[x]=='\0') return -1;
    if(a[x]=='(')
    {
      b=find(x+1,y+1);//????????????????
      a[x]=(b==-1)?'$':' ';//??????$????????? 
      return (b==-1)?-1:find(b+1,y);//????????????????? 
    }
    if(a[x]==')')
    {
      a[x]=(y==0)?'?':' ';//?????????????????? 
      return (y==0)?find(x+1,y):x;//????????????????????? 
    }
    else//?????????????????? 
    {
      a[x]=' ';
      return find(x+1,y);
    }
} 
int main()
{
    int n=1000;
    for(int i=1;i<n;i++)
    {
      cin.getline(a,150);
      if(a[0]=='\0')
      break;
      else
      {
        cout<<a<<endl;//????? 
        find(0,0);//???? 
        cout<<a<<endl;//????????? 
      }
    }
    return 0;
}
int main()
{
	char s[110];
	while(cin>>s)
	{
	cout<<s<<endl;
	int l=strlen(s),i;
	for(i=l-1;i>=0;i--)
	{
	if(s[i]==')')
		continue;
	else if(s[i]=='(')
	{
		int j;
	for( j=i;j<l;j++)
		{if(s[j]==')')
		{
		s[i]=' ';s[j]=' ';
		break;
	}}
		if(j==l)
			s[i]='$';
	}
	else
		s[i]=' ';
	}
	for(i=0;i<l;i++)
		if(s[i]==')')
			s[i]='?';
	cout<<s<<endl;
	}
	return 0;
}
int main()
{
	char line[1000] ;
	char outline[1000] ;
	int i , j ;
	int len ;
	while ( cin >> line )
	{
		strcpy(outline , line) ;
		len = strlen(line) ;
		for ( i = 0 ; i < len ; i++ )
		{
			if ( line[i] == ')' ) 
			{
				for ( j = i - 1 ; j >= 0 ; j-- )
				{
					if ( line[j] == '(' )
					{
						line[j] = ' ' ;
						line[i] = ' ' ;
						break ;
					}
				}
			}
		}
		cout << outline << endl ;
		for ( i = 0 ; i < len ; i++ )
		{
			if ( line[i] == '(' )
			{
				cout << '$' ;
			}
			else
			{
				if ( line[i] == ')' )
				{
					cout << '?' ;
				}
				else
					cout << ' ' ;
			}
		}
		cout << endl ;
	}
	return 0 ;
}
// ??????.cpp : Defines the entry point for the console application.
//


int main(int argc, char* argv[])
{
	char zfc[120],cha,i,j,len;
	while(scanf("%s",zfc)!=EOF){
		cha=0;
		len=strlen(zfc);
		printf("%s\n",zfc);
		for(i=0;i<len;i++){
			if(zfc[i]!='('&&zfc[i]!=')'){
				zfc[i]=' ';
			}
			if(zfc[i]==')'){
				for(j=i-1;j>=0;j--){
					if(zfc[j]=='('){
						zfc[j]=' ';
						zfc[i]=' ';
						break;
					}
				}
				if(j<0){
					zfc[i]='?';
				}
			}
		}
		for(i=0;i<len;i++){
			if(zfc[i]=='('){
				zfc[i]='$';
			}
		}
		puts(zfc);
	} 
	return 0;
}
/*
 * ????match.cpp
 * ???? : 2012-12-4
 * ??: winneshaw
 * ??????????????????
 * ??????????????????????????????????
 * ???????????"$"??,?????????"?"??
 *
 */


char str[101];
int lenth = 0;
int main() {
	while(cin >> str){
		lenth = strlen(str);
		cout << str << endl;
		int i, j;
		for (j = 0; j < lenth; j++) {
			if (str[j] == '(')
				str[j] = '$';
			else if (str[j] == ')')
				str[j] = '?';
			else
				str[j] = ' ';
		}
		for (i = lenth - 2; i >= 0; i--) {
			if (str[i] == '$') {
				for (j = i + 1; j < lenth; j++) {
					if (str[j] == '?') {
						str[i] = ' ';
						str[j] = ' ';
						break;
					}
				}
			}
		}/*
		if (str[lenth - 1] == '?')
			for (i = 0; i < lenth; i++)
				if (str[i] == '$') {
					str[lenth - 1] = ' ';
					str[i] = ' ';
					break;
				}*/
		cout << str << endl;
	}
	return 0;
}
int main(){
	int i=0,j=0,k=0,n,f[101][102]={0},l[101],g;
	char s[101][102],a[102];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s",s[i]);
		l[i]=strlen(s[i]);
		for(j=l[i]-1;j>=0;j--){
			if(s[i][j]=='(')
				k=j;
			else
				continue;
		for(g=k+1;g<l[i];g++){
			if(s[i][g]==')'&&f[i][g]==0){
				f[i][k]=1;
				f[i][g]=1;
				break;
			}
		}
		}
	}
	for(i=0;i<n;i++){
		printf("%s\n",s[i]);
		for(j=0;j<l[i];j++){
			if(s[i][j]=='('&&f[i][j]==0)
				printf("$");
			else if(s[i][j]==')'&&f[i][j]==0)
				printf("?");
			else
				printf(" ");
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int i,j,k,tmp1,tmp2=1;
	do
		{char s[101];
		char st[101];
		char r1[101];
		int r2[101];
		int d,f=0,pi=0;
		if(scanf("%s",s)!=EOF)
		{
			f=1;
		d=strlen(s);
		strcpy(st,s);
	    for(j=0;j<d;j++)
		{
			if(pi==0&&(s[j]=='('||s[j]==')'))
				{
					r1[0]=s[j];
					r2[0]=j;
					pi+=1;
			}
			else if((s[j]=='('||s[j]==')'))
			{
				if(r1[pi-1]=='('&&s[j]==')')
					{
						s[r2[pi-1]]=' ';
						s[j]=' ';
						pi-=1;
				}
				else 
				{
					r1[pi]=s[j];
					r2[pi]=j;
					pi+=1;
				}
			}
			else s[j]=' ';
			

		}
		for(j=0;j<pi;j++)
			{
				if(r1[j]=='(')
				s[r2[j]]='$';
				else s[r2[j]]='?';
		}
		printf("%s\n%s\n",st,s);
}
		else break;
		}while (tmp2);
	
	
	
	return 0;
}
int main()
{
	int n,i,j,k,m;
	char a[110];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		int b[110]={0};
		scanf("%s",a);
        m=strlen(a);
		for(j=0;j<m;j++)
		{
			if(a[j]=='(') b[j]=1;
			else if(a[j]==')') b[j]=-1;
		}
		for(j=m-1;j>=0;j--)
		{
			if(b[j]==1)
			{
				for(k=j;k<m;k++)
				{
					if(b[k]==-1)
					{
						b[j]=0;
						b[k]=0;
						break;
					}
				}
			}
		}
		for(k=0;k<m;k++)
			printf("%c",a[k]);
		printf("\n");
		for(k=0;k<m;k++)
		{
			if(b[k]==1) printf("$");
			else if(b[k]==-1) printf("?");
			else printf(" ");
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	int i,j,len;
	char a[101];
	
    while(cin>>a)
	{
		int b[100]={0};
		len=strlen(a);

	for(i=0;i<len;i++)
	{
		if(a[i]==')')
		{
			char *p=&a[i-1];
			for(j=i-1;j>=0;j--)
			{
				if(*p=='('&&b[j]==0)
				{
					b[j]=1;b[i]=1;
					break;
				}
				p--;
				
			}
		}
	}
    cout<<a<<endl;
	for(i=0;i<len;i++)
	{
		if(a[i]=='('&&b[i]==0)
			cout<<"$";
		else
		{
			if(a[i]==')'&&b[i]==0)
				cout<<"?";
			else
				cout<<" ";
		}
	}
	cout<<endl;
	}
	return 0;
}
char s[100];
char a[100];
int b[100];
int num=0;
int i,j;
void f()
{
	for(i=0;i<strlen(s);i++)//?a[i]??????
	{
		a[i]=' ';
	}
	for(i=0;i<strlen(s);i++)
	{
		if(s[i]=='(')//?s[i]=='('
		{
			 b[num]=i;//?b[num]?????
			 a[i]='$';//?a[i]??'$'
			 num++;//num?1

		}
		else if(s[i]==')'&&num>0)//?s[i]==')'&&num>0
		{
			num--;//num?1
			a[b[num]]=' ' ;//?a[b[num]]????

		}
		else if(s[i]==')'&&num<=0)//?s[i]==')'&&num<=0
			a[i]='?';//?a[i]???
	}
	for(i=0;i<strlen(s);i++)
	{
		cout<<a[i];//??a[i]
	}
	cout<<endl;
}
int main()
{
	while(cin>>s)
	{
		num=0;
		cout<<s<<endl;
		f();
	}
}
int main()
{
	char line[101] ={0}, label[101]={0};
	int pos[101] = {0}, left, right, l, i, j, n;
    cin >> n;
	for (j = 0; j < n; j++)
	{
		cin >> line;
		left = 0;
		right = 0;
		l = strlen(line);
		for (i = 0; i < 101; i++)
			label[i] = ' ';
		for (i = 0; line[i] != '\0'; i++)
		{
			if (line[i] == '(')
			{
				left++;
				pos[left] = i;
			}
			if (line[i] == ')')
			{
				if (left <= right)
					label[i] = '?';
				else
					left--;
			}
		}
		for (i = 1; i <= left; i++)
			label[pos[i]] = '$';
		label[l] = '\0';
		cout << line << endl;
		cout << label << endl;
	}
	return 0;
}
void peidui(char str[],int len);
int main()
{
	int n,i;
	char s[1000],s1[5];
	scanf("%d",&n);
	gets(s1);
	for(i=1;i<=n;i++)
	{
		gets(s);
		puts(s);
		peidui(s,strlen(s));
		
	}
}
void peidui(char str[],int len)
{
	int a1[500],n1,n2,m,i1,i2;
	n1=0;
	char *p;
	char mark[1000];
	for(m=0;m<=len-1;m++)
	{
		if(str[m]=='(')
		{
			a1[n1]=m;
			n1++;
		}
		mark[m]=' ';
	}
	for(i1=n1-1;i1>=0;i1--)
	{
		int exist;
		exist=0;
		for(i2=a1[i1]+1;i2<=len-1;i2++)
		{
			if(str[i2]==')'&&mark[i2]!='m')
			{
				exist=1;
				mark[i2]='m';
				mark[a1[i1]]='m';
				break;
				
			}
		}
		if(a1[i1]==len-1)
		{
			mark[len-1]='$';
		}

	}
	for(m=0;m<=len-1;m++)
	{
		if(str[m]=='('&&mark[m]!='m')
		{
			mark[m]='$';
		}
		if(str[m]==')'&&mark[m]!='m')
		{
			mark[m]='?';
		}
	}
	for(m=0;m<=len-1;m++)
	{
		if(mark[m]=='m')
			printf("%c",' ');
		else
			printf("%c",mark[m]);
	}
	printf("\n");
}
int main()
{
	char z[101];
	int i,j,l[101],r[101];
	while(scanf("%s",z)!=EOF)
	{
		for(i=0;i<101;i++)
		{
			l[i]=0;
			r[i]=0;
		}
		for(i=0;i<strlen(z);i++)
		{
			if(z[i]=='(')
				l[i]=1;
			if(z[i]==')')
				r[i]=1;
		}
		for(i=0;i<strlen(z);i++)
		{
			if(l[i]==1)
			{
				for(j=i+1;j<strlen(z);j++)
				{
					if(l[j]==1)
						l[i]++;
					if(r[j]==1)
						l[i]--;
					if(l[i]==0)
					{
						r[j]=0;
						break;
					}
				}
			}
		}
		printf("%s\n",z);
		for(i=0;i<strlen(z);i++)
		{
			if(l[i]!=0)
				printf("$");
			else if(r[i]!=0)
				printf("?");
			else
				printf(" ");
		}
		printf("\n");
	}
	return 0;
}
int main() {
	char jiance[101], c;
	int i, zifu, kuo2[100];
	while (cin >> jiance) {//???????
		cout << jiance << endl;//????????
		zifu = -1;
		for (i = 0; jiance[i] != 0; i++) {
			c = jiance[i];
			jiance[i] = ' ';//???????  
			if (c == '(') {//??????
				zifu++;
				kuo2[zifu] = i;
			} else if (c == ')') {//?????
				zifu--;
				if (zifu < -1) {
					jiance[i] = '?';//???????????
					zifu = -1;
				}
			}
		}
		if (zifu > -1)
			for (; zifu > -1; zifu--)
				jiance[kuo2[zifu]] = '$';//????????????
		cout << jiance << endl;
	}
	return 0;
}
void main()
{
	int i,j,k,u,p;
	char c;
	for(;;)
	{
		p=1;
		char ch[102]={'0'};
		i=2;
		c=getchar();
		if(c==-1) 
			break;
		else 
			ch[1]=c;
		while((c=getchar())!='\n')
		{
			ch[i]=c;
			i++;
		}
		i--;
		for(j=1;j<=i;j++)
			printf("%c",ch[j]);
		printf("\n");
		while(p==1)
		{
			p=0;
			for(j=1;j<=i-1;j++)
			{
				if(ch[j]=='(')
				{
					for(k=j+1;k<=i;k++)
					{
						u=1;
						if(ch[k]=='(')
						{
							break;
						}
						else
						{
							if(ch[k]==')')
							{
								u=0;
								break;
							}
						}
					}
					if(u==0)
					{
						ch[j]=0;
						ch[k]=0;
						p=1;
					}
				}
			}
		}
		for(j=1;j<=i;j++)
		{
			if(ch[j]=='(')
			{
				ch[j]='$';
			}
			else
			{
				if(ch[j]==')')
				{
					ch[j]='?';
				}
				else
					ch[j]=' ';
			}
			
		}
		for(j=1;j<=i;j++)
			printf("%c",ch[j]);
		printf("\n");
	}
}
void course(char a[],int n)
{
    int i,j,k;
    for(k=0;k<n;k++)
    {
        if(a[k]==')')
        a[k]='?';
        else if(a[k]=='(')
        a[k]='$';
        else a[k]=32;
    }
    for(k=0;k<n;k++)
    {
        for(i=0;i<n-1;i++)
        {
            if(a[i]=='$')
            {
                for(j=i+1;j<n;j++)
                {
                    if(a[j]=='$')
                    break;
                    else if(a[j]=='?')
                    {
                        a[i]=32;
                        a[j]=32;
                        break;
                    }
                    else continue;
                }
            }
        }
    }
}
int main()
{
    char a[10000];
    int n,k;
    scanf("%d",&k);
    while(k--)
    {
        while(scanf("%s",a)!=EOF)
        {
            puts(a);
            n=strlen(a);
            course(a,n);
            puts(a);
        }
    }
    return 0;
}
int main()
{
   int i,len,j,m=0,max;
   char ch[105],s[105],str[105];
   while(scanf("%s",ch)!=EOF)
   {
   	int m=0;
   strcpy(s,ch);
   strcpy(str,ch);
   len=strlen(ch);

   for(i=0;i<len;i++)                                                                                                                                 
   {
      if(ch[i]!='('&&ch[i]!=')')
      {s[i]=' ';}
      else if(ch[i]==')')//you  shi
      {
         for(j=i-1;j>=0;j--)
         {  
            if(ch[j]=='(')
            {m=1;
            ch[i]=' ';
            s[i]=' ';
            s[j]=' ';
            ch[j]=' ';
            break;
            }
            else
            {continue;}
         }
        if(m==0)
         {s[i]='?';} //zai
      }//you  zhi	
   }
   for(i=0;i<len;i++)
   {
      if(s[i]=='(')
      {s[i]='$';}
      else if(s[i]==')')
      {s[i]='?';}	
   }
   printf("%s\n",str);
   printf("%s\n",s);
   }
return 0;  
}