#include<string.h>
void Output( char [] ) ;
int Solve( char [] , int ) ;  
int pd( char [] ,  int , int );
int main(void)
{
	char zf[256]; 
	gets( zf );
	Solve( zf , 0  ); 
	Output( zf ) ;  
	return 0 ; 
}
int pd( char zf[] , int left, int right )
{
	int i , leftAcount ;
    if( zf[ left - 1 ] == '-')
	{    
 
        i = left;
        leftAcount = 1;
        while( ++ i < right)
		{
            if(zf[i] == '(') 
			{
				leftAcount ++;
			}
            if(zf[i] == '+' && leftAcount == 1) 
			{
				return 0;
		    } 
        }
    }
    if( zf[ left - 1 ] == '/')
	{
		return 0;    	
	} 
    if(zf[ left - 1 ] != '*' && zf[ left - 1 ] != '/' && zf[ right + 1 ] != '*' && zf[ right + 1 ] != '/')
	{
	   return 1;
	} 
 
 
    i = left ;
    leftAcount = 1;
    while(++i < right)
	{
        if(zf[i] == '(') 
		{
			leftAcount ++;
		}
        if(zf[i] == '*' && leftAcount == 1)
		{
			return 1;	
		}  
    }
 
 
    return 0;
}
int Solve( char zf[]  , int i  ) 
{
	int left , right ; 
	while( zf[i] != '\0')
	{
		if( zf[i] == ')')
		{
			return i ; 
		}
		if( zf[i] == '(')
		{
			left = i ; 
			right = Solve( zf , i + 1  ) ;
			i = right ;  
			if( pd( zf , left , right ))
			{
				zf[left] = ' ' ;
				zf[right] = ' ' ;  
			}
		}
		i ++ ; 	
	} 
}
void Output( char zf[] ) 
{
	int i = 0 ;   
	while( zf[ i ] != '\0')
	{
		
        if(zf[i] != ' ')
		{
            putchar(zf[i]);
        }
        i ++ ; 
    }
}


/**************************************************************
	Problem: 1855
	User: admin
	Language: C
	Result: Accepted
	Time:33 ms
	Memory:1036 kb
****************************************************************/