semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    char str[101],label[101];
    while (cin >> str)
    {
    
    int pos[101];
    int len=strlen(str);
    int left=0,right=0;
    int pos_i=-1;
    int i;
    
    for (i=0;i<=len-1;i++)
    {
        label[i]=' ';
        if (str[i]=='(')
        {
            left++;
            pos[++pos_i]=i;
        }
        if (str[i]==')')
        {
            if (left<=right)
            {
                label[i]='?';
            }
            else
            {
                right++;
                pos_i--;
            }
        }
    }
   if (pos_i>=0)
   {
       for (i=0;i<=pos_i;i++)
       {
           label[pos[i]]='$';
       }
   }
   label[len]='\0';
   cout << str << endl;
   cout << label << endl;
} 

   return 0;
}
struct m
{
 char a;
  int n;}q[100];
int main()
{
    char b[101]={0};
    int i,j,k,t,l;
    while(cin>>b)
    {cout<<b<<endl;
     char c[101]={0};
    t=0;
    k=strlen(b);
    j=0;
    for(i=0;i<k;i++)
    if(b[i]=='('||b[i]==')')
     {q[j].a=b[i];
      q[j++].n=i;}
    i=0;
    while(i<j-t-1)
     {if(q[i].a=='('&&q[i+1].a==')')
       {
       for(l=i;l<j-t-2;l++)
         {q[l]=q[l+2];}
         t=t+2;
         if(i!=0)i=i-1;}
     else i++;}
     
     for(i=0;i<k;i++)
      {c[i]=' ';b[i]=0;}
     for(i=0;i<j-t;i++) 
        {if(q[i].a=='(')
          c[q[i].n]='$';
         else c[q[i].n]='?';} 
     cout<<c<<endl;       }
     return 0;}
int main()
{
    int i,n,j;
    char a[500]={0},b[500]={0};
	scanf("%d",&n);
     for(j=1;j<=n;j++)
	 {
    scanf("%s",a);
        printf("%s\n",a);
        i = 0;
        while(a[i]!='\0'){
            if(a[i]=='('){
                b[i]='$';
            }else if(a[i]==')'){  
                int k;
                for(k=i-1;k>=0;k--){
                    if(b[k]=='$'){
                        b[i]=b[k]=' ';
                        break;
                    }
                }
                if(k==-1)
                    b[i]='?';
            }else{
                b[i]=' ';
            }  
            i++;
        }
  
        printf("%s",b);
        printf("\n");
        memset(b, 0, 500);
        memset(a, 0, 500);
        fflush(stdin);
    }
    return 0;
}
int main()
{
    int i, j, f1=0, f2=0;
    char line[101], copy[101];
    while (cin >> line)
    {
	    strcpy(copy,line);
		for (i=0;i<strlen(line);i++)
	    {
			if (line[i]==')')
			    line[i]='?';
			if (line[i]=='(')
			{
				f1=1;
				for (j=i+1;j<strlen(line);j++)
				{
					if (line[j]=='(') f1++;
					if (line[j]==')') 
					{
						f1--;
						if (f1==0)
						{
							line[i]=' ';
							line[j]=' ';
							break;
						}
					}
				}
				if (f1!=0)
					line[i]='$';
			}
		}
		cout << copy << endl;
		for (i=0;i<strlen(line);i++)
	    {
			if (line[i]=='$'||line[i]=='?') cout << line[i];
			else cout << " ";
		}
		cout << endl;
		memset(line, 0, sizeof(line));
		memset(copy, 0, sizeof(copy));
	}
	return 0;
}
char str[110];
void search()
{
	int i=0,l,t=0;
	char str1[110];
	int stack[110];//?
	cout<<str<<endl;
	l=strlen(str);memset(str1,' ',sizeof(str1));
	while (i<l)
	{
		if (str[i]=='(')//???????
		{
			t++;
			stack[t]=i;
		}
		if (str[i]==')')//??????????????????
		{
			if (t==0) str1[i]='?'; else t--;//??
		}
		i++;
	}
	for (i=1;i<=t;i++) str1[stack[i]]='$';//???????
	for (i=0;i<l;i++) cout<<str1[i];//??
	cout<<endl;
}
int main()
{
	while (cin>>str) search();//????????
	return 0;
}
int left(int x,char s[],int n);//???????x?????
int main()
{
	int l;
    char c[101]={0};
	gets(c);
	puts(c);
    l=left(0,c,0);
	printf("%s",c);
	while ((scanf("%s",c)!=EOF))
	{
	printf("\n");
	puts(c);
    l=left(0,c,0);
	printf("%s",c);
	}
	return 0;
}
int left(int x,char s[],int n)
{
	int a;
	if (s[n]!='\0')
	{
		if (s[n]=='(')
		{
			a=left(x+1,s,n+1);
			if (a>0)  
			{
			s[n]=' ';
			return(a-1);
			}
           else 
		   {
			   s[n]='$';
			   return 0;
		   }
		}
		else if (s[n]==')')
		{
			if (x>0) 
			{
				s[n]=' ';
				return(left(x-1,s,n+1)+1);
			}
			else
            {
				s[n]='?';
				return(left(0,s,n+1)+1);
			}
		}
		else 
		{
          s[n]=' ';
		  return left(x,s,n+1);
		}
	}
	else return 0;
}
int m=0,l,t;
char b[100];
void ff(int x)
{
	m=x;
	for(int j=x+1;j<l;j++)
	{
		if(b[j]=='('){ff(j);break;}
		if(b[j]==')')
		{
			b[m]=' ';
			b[j]=' ';
			t=1;
			break;
		}
	}
	return;
}
void f(int x)
{
	m=0;t=0;
	for(int i=0;i<x;i++)
	{
		if(b[i]!='('&&b[i]!=')')b[i]=' ';
		if(b[i]=='('){ff(i);break;}
	}
	if(t==1)
	{
		f(x);
		return;
	}
	else{
		for(int i=0;i<x;i++)
		{
			if(b[i]=='(')cout<<"$";
			else if(b[i]==')')cout<<"?";
			else cout<<" ";
		}
		return;
	}
}
int main()
{
	int k,h;
	for(h=0;h<10;h++)
	{
		l=0;
		cin>>b;
		cout<<b<<endl;
		l=strlen (b);
		f(l);
		cout<<endl;
for(k=0;k<100;k++)b[k]='\0';

	}
	return 0;
}
int main()
{
    char a[M][N],b[M][N];
    int i,j,l,r;
    int p,pi;

for(i=0;i<M;i++)
{
    for(j=0;j<N;j++)
    {
        a[i][j]='\0';
        b[i][j]='\0';
    }
}

for(r=0;r<M;r++)
{
    gets(a[r]);
    strcpy(b[r],a[r]);

    for(j=0;j<(strlen(a[r])+1)/2;j++)
    {
        for(i=0,pi=0,p=0;b[r][i]!='\0';i++)
        {
            if(b[r][i]=='(')
            {
                p=1;
                pi=i;
            }

            if(b[r][i]==')'&&p==1)
            {
                b[r][i]='0';
                b[r][pi]='0';
                break;
            }
        }
    }
    //puts(b);

    for(i=0;b[r][i]!='\0';i++)
    {
        if(b[r][i]=='(')
        {
            b[r][i]='$';
        }

        else if(b[r][i]==')')
        {
            b[r][i]='?';
        }

        else
            b[r][i]=' ';
    }
}

for(r=0;b[r][0]!='\0';r++)
{
    puts(a[r]);
    puts(b[r]);
}

    return 0;
}
int main()
{
	char a[110];
	int i,j,l;
	while(scanf("%s",a)==1)
	{
		printf("%s\n",a);
		l=strlen(a);
		for(i=0;i<l;i++)
		{
			if(a[i]!='('&&a[i]!=')') a[i]=' ';
		}
		for(i=1;i<l;i++)
		{
			if(a[i]==')')
			{
				for(j=i-1;j>=0;j--)
				{
					if(a[j]=='(')
					{
						a[i]=' ';
						a[j]=' ';
						break;
					}
				}
			}
		}
		for(i=0;i<l;i++)
		{
			if(a[i]=='(') printf("$");
			if(a[i]==')') printf("?");
			if(a[i]==' ') printf(" ");
		}
		printf("\n");
	}
	return 0;
}
int main()
{
	char line[101], label[101];
	int pos[100];
	int left = 0, right = 0;
	int pos_i, length;
	int i;
	while(cin.getline(line, sizeof(line)))
	{
		for(i = 0; i < 101; i++)
			label[i] = ' ';
		pos_i = -1, left = 0, right = 0;
		length = strlen(line);
		for(i = 0; line[i] != '\0'; i++)
		{
			if(line[i] == '(')
			{
				pos_i++;
				pos[pos_i] = i;
				left++;
			}
			if(line[i] == ')')
			{
				if(right >= left)
					label[i] = '?';
				else
				{
					right++;
					pos_i--;
				}
			}
		}
		if(pos_i >= 0)
		{
			for(i = 0; i <= pos_i; i++)
				label[pos[i]] = '$';
		}
		label[length] = '\0';
		cout << line << endl;
		cout << label << endl;
	}
	return 0;
}
int main()
{
	char a[200];
	int b[200];
	int n,len;
	cin>>n;
	cin.get();
	for (int i=0;i<n;i++)
	{
		memset(b,0,sizeof(b));
		cin.getline(a,200);
		len=strlen(a);
		for (int i=0;i<len;i++)
		{
			cout<<a[i];
			switch(a[i])
			{
			case '(':b[i]=1;break;
			case ')':b[i]=2;break;
			default :b[i]=3;break;
			}
		}
		cout<<endl;
		for (int i=0;i<len;i++)
		{
			if (b[i]==2)
			{
				for (int j=i;j>=0;j--)
				{
					if (b[j]==1)
					{
						b[j]=3,b[i]=3;
						break;
					}
				}
			}
		}
		for (int i=0;i<len;i++)
		{
			if (b[i]==1)
			{
				cout<<'$';
			}
			else if (b[i]==2)
			{
				cout<<'?';
			}
			else
			{
				cout<<' ';
			}
			
		}
		cout<<endl;
	}



















	return 0;
}
int d[120]={0},l=0;
int search(int p)
{
	int i=p+1,j=0;
	while (1)
	{
		if (d[i]==-1)
		{
			j=search(i);//??
		    i=j+1;
		} else
		{
			if (d[i]==1) 
			{
				d[p]=0; d[i]=0;
				return i;
			}
			else i++;
		}
		if (i>=l) return i;
	}
}
int main()
{
	char ch;
	int i,j;
	while (cin.get(ch))
	{
	//	cout<<"-----"<<ch<<endl;
		if (ch=='\n')
		{   
			cout<<endl;
			i=0;
			while (i<l)
			{
				while ( i<l && d[i]>-1) {
					i++;
				}
				if( i >= l )
					break;
			   j=search(i);
			   i=j+1;
			}
			for (i=0;i<l;i++)
			{
				if (d[i]==-1) cout<<'$';//   ())
				else if (d[i]==1) cout<<'?';
				else cout<<' ';
			}
			cout<<endl;
			l=0;
			for (i=0;i<100;i++) d[i]=0;
		} else
		{
			cout<<ch;
			if (ch=='(') d[l]=-1;
			if (ch==')') d[l]=1;
			l++;
		}
		ch='\0';
	}
	return 0;
}
char s[1000];
void findr(int left){
    for(int i=left+1;s[i]!='\0';i++){
    	if(s[i]!='('&&s[i]!=')'&&s[i]!='$'&&s[i]!='?') s[i]=' ';
    	if(s[i]=='(') findr(i);
    	if(s[i]==')') {
    		s[i]=' ';
    		s[left]=' ';
    		return;
    	}
    }
    s[left]='$';
}



int main(){
	while(cin>>s){
	    cout<<s<<endl;
		for(int i=0;s[i]!='\0';i++){
			if(s[i]!='('&&s[i]!=')'&&s[i]!='$'&&s[i]!='?') s[i]=' ';
			if(s[i]=='(') findr(i);
			if(s[i]==')') s[i]='?';
			}
		cout<<s<<endl;
		}
	return 0;
}
int main()
{
	int n,i;
	scanf("%d",&n);
	char a[1000],b[1000];
	int j,l,r;
	for(i=0;i<n;i++)
	{
		
		memset(a,'\n',200);
		memset(b,'\n',200);
		scanf("%s",a);
		printf("%s\n",a);
		l=strlen(a);
		for(j=0;j<l;j++)
		{
			if(a[j]=='(')
			{
				b[j]='$';
			}
			else if(a[j]==')')
			{
			    b[j]='?';
				for(r=j-1;r>=0;r--)
				{
					if(b[r]=='$')
					{
						b[r]=' ';
						b[j]=' ';
						break;
					}
				}
			}
			else if(a[j]!='(' && a[j]!=')')
			{
				b[j]=' ';
			}
		}
		printf("%s\n",b);
	}
	return 0;
}
int main(int argc, char* argv[])
{
	char a[100],b[100];
	int left[100],k=0,len,i;
	while(scanf("%s",&a)!=EOF)
	{
		len=strlen(a);
		puts(a);
		for(i=0;i<len;i++)
		{	b[i]=32;}
		for(i=0;i<len;i++)
		{	if(a[i]=='(')
		{
			k++;
			left[k]=i;
			
		}
		}
        for(;k>0;k--)
		{
			for(i=left[k];i<len;i++)
			{	
				if(a[i]==')')
				{
					a[i]=' ';
					a[left[k]]=' '; 
					break;
				}
			}
		}
		for(i=0;i<len;i++)
		{	if(a[i]=='(')
		{	b[i]='$';}
		if(a[i]==')')
		{	b[i]='?';}
		}
		for(i=0;i<len;i++)
			printf("%c",b[i]);
		printf("\n");
	}
	return 0;
}
int main()
{
	int bs[102],i,j;
	char a[102];
	memset(bs,0,102);
	while(cin.getline(a,102))
	{
		for(i=0;i<102;i++)
		{
			if(a[i]=='\0')
				break;
			if(a[i]=='(')
				bs[i]=1;
			if(a[i]==')')
			{
				bs[i]=1;
				for(j=i;j>=0;j--)
				{
					if(a[j]=='('&&bs[j]==1)
					{
						bs[j]=0;
						bs[i]=0;
						break;
					}
				}
			}
		}
		cout<<a<<endl;
		for(i=0;i<102;i++)
		{
			if(a[i]=='\0')
				break;
			if(a[i]==')'&&bs[i]==1)
				cout<<"?";
			else if(a[i]=='('&&bs[i]==1)
				cout<<"$";
			else
				cout<<" ";
		}
		cout<<endl;
	}
	return 0;
}
int main(){
    char zf[106];
    while(1) {
    memset(zf,'\0',sizeof (zf));
    gets(zf);
    if (zf[0]=='\0')
    break;
    puts(zf);
    for (int i=0;i<strlen(zf);i++){
              if(zf[i]==')'){
              for (int j=i;j>=0;j--){
              if (zf[j]=='('){
              zf[j]=' ';
              zf[i]=' ';
              break;
              }
              }               
              }
              else if (zf[i]!='(') {
              zf[i]=' ';
              }
    }
    for (int t=0;t<strlen(zf);t++){
             if(zf[t]=='('){
             zf[t]='$';
             } 
             else if (zf[t]==')'){
             zf[t]='?';
             }
    }
    puts(zf);
    }
return 0;
}
int main()
{
    char s[101],a,b,c[101];
    int len,i,j,flag;
    while(gets(s))
    {
                       strcpy(c,s);
                       len=strlen(s);
                       for(i=0;i<len;i++)
                       {
                                         flag=0;
                                         if(s[i]==41)
                                         {
                                                     for(j=i-1;j>=0;j--)
                                                     {
                                                                        if(s[j]==40)
                                                                        {
                                                                                    flag++;
                                                                                    break;
                                                                        }
                                                     }
                                                     if(flag==1)
                                                     {
                                                                s[i]=32;
                                                                s[j]=32;
                                                     }
                                                     else
                                                     s[i]='?';
                                         }
                       }
                       printf("%s\n",c);
                       for(i=0;i<len;i++)
                       {
                                         if(s[i]=='?')
                                         printf("?");
                                         else if(s[i]==40)
                                         printf("$");
                                         else
                                         printf(" ");
                       }
                       printf("\n");
    }
    return 0;
}
char a[500][103];
void chuli(int i,int la)
{
      int j,k,l,flag=0;
      for (j=0;j<la-1;j++)
      {
          if (a[i][j]=='(')
          {
                           k=j+1;
                           while (a[i][k]!='('&&a[i][k]!=')'&&k<la) k++;
                           if (a[i][k]==')')
                           {
                                            flag=1;
                                            a[i][j]=a[i][k]=' ';
                           }      //?????? 
          }
      }
      if (flag==1) chuli(i,la);   //???????????,????? 
}
int main()
{
    int n=0,la[500]={0},i,j;
    char c,b[500][103];
    while(cin>>c)
    {
                      while (c!='\n')
                      {
                            a[n][la[n]]=b[n][la[n]]=c;
                            la[n]++;
                            c=getchar();
                      }
                      n++;
    }     //?? 
    for (i=0;i<n;i++) chuli(i,la[i]); //?? 
    for (i=0;i<n;i++)
    {
        for (j=0;j<la[i];j++) cout<<b[i][j];
        cout<<endl;
        for (j=0;j<la[i];j++)
        {
            if (a[i][j]=='(') cout<<'$';
            else if (a[i][j]==')') cout<<'?';
            else cout<<' ';
        }
        if (i!=n-1) cout<<endl;
    }   //?? 
    return 0;
}
int main()
{
	char str[110],tra[110],mark[110];
	int n,i,j,p,q;
	while(gets(str))
	{
		p=q=-1;
		n=strlen(str);
		mark[n]=NULL;
		for(i=0;i<n;i++)
		{
			if(str[i]=='(')
			    p=i;
		}
		strcpy(tra,str);
		for(i=p;i>=0;i--)
			if(tra[i]=='(')
				for(j=i+1;j<n;j++)
					if(tra[j]==')')
					{
						tra[i]=tra[j]='a';
						break;
					}
		for(i=0;i<n;i++)
			if(tra[i]=='(')
				mark[i]='$';
			else if(tra[i]==')')
				mark[i]='?';
			else mark[i]=' ';
		printf("%s\n%s\n",str,mark);
	}
	return 0;
}
int main()
{
	char s[200];
	int i,j,k;
	while(gets(s)!=NULL)
	{
	    int len;
	    len=strlen(s);
	    printf("%s\n",s);

	    for(i=0;i<len;i++)
	    {
	        int zuo=0;
	        int you=0;
	        if(s[i]!='('&&s[i]!=')')
	        {
	            printf(" ");
	        }
	        else if(s[i]=='(')
            {
                for(j=i+1;j<=len;j++)
                {
                    if(s[j]==')')
                    {
                        you++;
                        if(you>zuo)
                        {

                            printf(" ");
                            break;
                        }

                    }
                    if(s[j]=='(')
                    {
                        zuo++;
                    }
                    if(j==len)
                    {
                        printf("$");
                        break;
                    }

                }
            }
            else if(s[i]==')')
            {
                if(i==0)
                {
                    printf("?");
                }
                for(j=i-1;j>=0;j--)
                {
                    if(s[j]=='(')
                    {
                        zuo++;
                        if(zuo>you)
                        {
                            printf(" ");
                            break;
                        }

                    }
                    if(s[j]==')')
                    {
                       you++;
                    }
                    if(j==0)
                    {
                        printf("?");
                    }

                }

            }
	    }
	    printf("\n");


	}

	return 0;

}
int main ()
{
    char a[1000];
    int d[1000],n;
    char b='(',c=')';
    int pp=2;int ww=0;
    while ((ww=getchar())!=-1) 
    {
          a[1]=ww;
          for (int i=2;i<=999;i++)
          {
              a[i]=getchar();
              if (a[i]=='\n')
              {
                 n=i-1;
                 break;
              }
          }
          for (int i=1;i<=n;i++)
          d[i]=0;
          for (int i=1;i<=n;i++)
          {
              if (a[i]!=b&&a[i]!=c)
              d[i]=1;
          }
          for (int i=1;i<=n/2;i++)
          {
              for (int j=1;j<=n;j++)
              {
                  if (a[j]==b||d[j]==1)
                  continue;
                  for (int k=j;k>0;k--)
                  {
                      if (a[k]==c||d[k]==1)
                      continue;
                      d[j]=1;
                      d[k]=1;
                      break;
                  }
              }
          }
          for (int i=1;i<=n;i++)
          cout <<a[i];
          cout <<endl;
          for (int i=1;i<=n;i++)
          {
              if (d[i]==1)
              cout <<" ";
              else
              {
                  if (a[i]=='(')
                  cout <<"$";
                  else
                  cout <<"?";
              }
          }
          cout <<endl;
    }
    return 0;
}
int main()
{
	int n;
	scanf("%d",&n);
	int i;
	for(i=0;i<n;i++)
	{
		int j;
		int a[1000];
		char s[1000];
		scanf("%s",s);
		int l=strlen(s);
		printf("%s\n",s);
      
		for(j=0;j<l;j++)
			a[j]=0;
		for(j=l-1;j>=0;j--)
		{
			int t;
			if(s[j]=='(')
			{
				int f=0;
				for(t=j+1;t<l;t++)
				{
					if(s[t]==')'&&a[t]==0)
					{f=1;a[t]=1;a[j]=1;break;}
				}
				if(f==0)
				{
					s[j]='$';
				}
			}
		}
		for(j=0;j<l;j++)
		{
			if(s[j]==')'&&a[j]==0)
			{
				s[j]='?';
			}
		}
		for(j=0;j<l;j++)
		{
			if(s[j]!='?'&&s[j]!='$')
				s[j]=' ';
		}
		printf("%s\n",s);
	}
}
int main()
{
	char a[1000]={0},b[1000]={0};
	int i,j;
	while(gets(a))
	{
		for(i=0;a[i]!='\0';i++)
		{
			b[i]=a[i];
		}b[i]='\0';
		for(i=0;b[i]!='\0';i++)
		{
			if(b[i]==')'){
				for(j=i;j>=0;j--)
				{
					if(b[j]=='(')
					{
						b[j]=' ';
						b[i]=' ';
						break;
					}
				}
			}
		}
		for(i=0;b[i]!='\0';i++)
		{
			if((b[i]>='a'&&b[i]<='z')||(b[i]>='A'&&b[i]<='Z'))
			   b[i]=' ';
			else if(b[i]=='(')b[i]='$';
			else if(b[i]==')')b[i]='?';
		}//cout<<i<<b[i]<<endl;
		cout<<a<<endl;
		cout<<b<<endl;
		
	}
		return 0;
}
char c[120],ch;
int n;
int search(int p)//????????????????
{
	int q=p+1;
	if (q>=n) return q;
	while ((c[q]!='?')&&(q<n))
	{
		if (c[q]=='$') q=search(q)+1;
		else q++;
	}
	if (q<n)
	{
		c[p]=' ';
		c[q]=' ';
	}
	return q;
}
int main()
{
	int i=0;
	while (cin>>ch)
	{
		cout<<ch;
                  n=0; i=0;
		while (ch!='\n')
		{
			if (ch=='(') c[n]='$';
			else
				{if (ch==')') c[n]='?';
				else c[n]=' ';}
			n++;
			cin.get(ch);
                           cout<<ch;
		}
		while (i<n)
		{
			while ((c[i]!='$')&&(i<n)) i++;
			i=search(i)+1;
		}
		for (i=0; i<n; i++) cout<<c[i];
		cout<<endl;
	}
	return 0;
}
int main()
{
	char a[110],b[110];
	int len,mark,sign=0,s=0;
	while(cin.getline(a,110,'\n'))
	{
		len=strlen(a);
		for(int i=0;i<=len-1;i++)
			b[i]=a[i];
		for(int j=1;j<=len;j++)
		{
			mark=0;
			sign=0;
			s=0;
			for(int i=0;i<len;i++)
			{
				if(a[i]=='(')
				{
					mark=i;
					s=1;
				}
			}
			if(mark==len-1)
			{
				a[mark]='$';
			}
			if(s!=0)
			{
			for(int i=mark+1;i<len;i++)
			{
				if(a[i]==')')
				{
					a[mark]='a';
					a[i]='a';
					sign=1;
					break;
				}
			}
			}
			if(s!=0)
			{
				if(sign==0)
					a[mark]='$';
			}
			sign=0;
			mark=0;
			s=0;
			for(int i=len-1;i>=0;i--)
			{
				if(a[i]==')')
				{
					mark=i;
					s=1;
				}
			}
			if(s!=0)
			{
			if(mark==0)
			{
				a[mark]='?';
			}
			}
			if(s!=0)
			{
			for(int i=mark-1;i>=0;i--)
			{
				if(a[i]=='(')
				{
					a[mark]='a';
					a[i]='a';
					sign=1;
					break;
				}
			}
			}
			if(s!=0)
			{
				if(sign==0)
					a[mark]='?';
			}
		}
		for(int i=0;i<len-1;i++)
			cout<<b[i];
		cout<<b[len-1]<<endl;
		for(int i=0;i<len-1;i++)
		{
			if(a[i]!='?'&&a[i]!='$')
				cout<<' ';
			else
				cout<<a[i];
		}
		if(a[len-1]!='?'&&a[len-1]!='$')
			cout<<' '<<endl;
		else
			cout<<a[len-1]<<endl;
		memset(a,'\0',sizeof(a));
		memset(b,'\0',sizeof(b));
		mark=0;
		sign=0;
		len=0;
	}
		return 0;
}
int main()
{
  int b[200],i,j;
  char a[200];
  while(gets(a))
  {
    memset(b,0,sizeof(b));
    //if(a=EOF) break;
    for(i=0;i<200;i++)
    {
      if(a[i]=='\0') break;
      if(a[i]=='(') b[i]=1;
      if(a[i]==')') 
      {
        b[i]=1;
        for(j=i;j>=0;j--)
          if(a[j]=='('&&b[j]==1)
          {
            b[i]=0;
            b[j]=0;
            break;
          }
      }
    }
    printf("%s\n",a);
    for(i=0;i<200;i++)
    {
    if(a[i]=='\0') break;
    if(a[i]=='('&& b[i]==1) printf("$");
    else
    if(a[i]==')'&&b[i]==1) printf("?");
    else printf(" ");
    
    }
    printf("\n");
    //gets(a);
  }
  return 0;
}
int main(int argc, char *argv[])
{
  
  char str[200],str1[200];
  while(scanf("%s",str1)!=EOF)
  {
                         int m;
  m=strlen(str1);
  strcpy(str,str1);
  int i,j;
  for(i=1;i<m;i++)
  {
                  for(j=0;j<m;j++)
                  {
                                    if(i+j<m)
                                    {
                                             if(str[j]=='('&&str[j+i]==')')
                                             {
                                                                           str[j]='a';
                                                                           str[j+i]='a';
                                             }
                                    }
                  }
  }
  for(i=0;i<m;i++)
  {
                  if(str[i]=='(') str[i]='$';
                  else if(str[i]==')') str[i]='?';
                  else str[i]=' ';
  }
  printf("%s\n",str1);
  printf("%s\n",str);
 	
}
 
  return 0;
}
int main()
{
	char s[101],c[101];
	int i,count,j,b[101];
	while(gets(s))
	{
		count=0;
		for(i=0;i<strlen(s);i++)
			b[i]=0;
		for(i=0;s[i]!='\0';i++)
		{
			if(s[i]=='(')
			{
				c[i]='$';
				count++;
				b[i]=-1;
			}
			else if(s[i]==')')
			{
				if(count!=0)
				{
					for(j=i;j>=0;j--)
					{
						if(s[j]=='('&&b[j]==-1)
						{c[j]=' ';
						c[i]=' ';
						count--;
						b[j]=0;
						break;}
					}
				}
				else
					c[i]='?';
			}
			else
				c[i]=' ';
		}
		c[i]='\0';
		printf("%s\n%s\n",s,c);
	}
	return 0;
}
int main(){
	char line[1000],label[1000];
	int pos[1000];
	int len,i;
	while(cin.getline(line,1000)){
		int left=0,right=0,s=-1;
		len=strlen(line);
		for(i=0;i<1000;i++)
			label[i]=' ';
		for(i=0;line[i]!='\0';i++)
		{
			if(line[i]=='(')
			{
				pos[++s]=i;left++;
			}
			if(line[i]==')'){
				if(left<=right)
					label[i]='?';
				else{
					right++; s--;
				}
			}
		}
		if(s>=0){
			for(i=0;i<=s;i++)
				label[pos[i]]='$';
		}
		label[len]='\0';
		cout<<line<<endl;
		cout<<label<<endl;
	}
	return 0;
}