#include <iostream>
#include <string>
using namespace std;

int main() {
	string str,stack;       
	char word, word_last;
	while(cin>>word){   
		if((word>=48)&&(word<=57)){ //если символ это число
			if((word_last>=48)&&(word_last<=57)){ // Проверка, я вляется ли предыдущий символ - числом
				str+=word; //Если да , то просто добавляем его, тем самым не разрушая число
			}
			else{
				str+=' '; // В противном  случае добавляем пробел и добавляем символ в главную строку
				str+=word;
				}
			}
			
		if(((word>=42)&&(word<=47))||(word==94)){ //если символ это операнд
			if(word=='*'){  //Замена умножения
				word='.';
				}
			if(word=='-'){ //Замена минуса
				word=',';
				}
			if(stack.empty()){ //  Если стэк пустой - то просто кладем символ в стэк
				stack+=word;
				}
			else{	 // Если стэк не пуст
				if((stack.back()>=word)||(stack.back()==word-1)||(stack.back()==word+1)){ // Если  верхний элемент стэка имеет больший приоритет 
					while((stack.back()>=word)||(stack.back()==word-1)||(stack.back()==word+1)){ //выталкиваем все элементы из стэка
						str+=' ';														//До тех пор, пока приоритет верхнего элемента не будет
						str+=stack.back();													//ниже входящего символа
						stack.pop_back();
					}
					stack+=word;
				}
				else{ // если же верхний элемент ниже приоритетом - то просто кладем символ в стэк
					stack+=word;
				}
			}
		}
		if(word=='('){ //Если символ - открывающая скобка
			stack+=word;  //добавляем ее в стэк
		}
		if(word==')'){    //Если встречающийся симвлл - закрывающая скобка
			while(stack.back()!='('){ // пока в стэке не встретится открывающая скобка 
				str+=' ';        // выталкиваем в главную строку  все символы
				str+=stack.back();
				stack.pop_back();
			}
		 stack.pop_back(); //Удаляем открывающую скобку из стека
		}
		
	word_last=word; //Присваеваем значение текущего символа для проверки в последующем цикле
	
		/*cout << "Numb:" << i++ << endl; // Распечатка пошаговых действий
		cout << "Word:  |" << word << endl;
		cout <<"STR:| "  << str <<"|  SRA:|" << stack << endl;*/
	}
	while(!stack.empty()){ //При окончании строки выталкиваем все символы из стека
		str+=' ';
		str+=stack.back();
		stack.pop_back();
}

	for( int i=0; i<str.length();i++){ // Проходим циклом финальную строку для возврата тербуемых символов
		if(str[i]=='.')
			str[i]='*';
		if(str[i]==',')
			str[i]='-';
		}
		
	cout <<"ИТОГ:     ___  " <<  str << endl;
	return 0;
}