#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include<stdlib.h>
#define MAX 100
char stack[MAX];
int top=-1;
void push(char c){
    if(top<MAX-1){
        stack[++top]=c;
    }
}
char pop(){
    if(top>=0){
        return stack[top--];
    }
    return '\0';
}
char peak(){
    if(top>=0){
        return stack[top];
    }
    return'\0';
}
int isOperator(char c){
    return c=='+'||c=='-'||c=='*'||c=='/';
}
int precedence(char op){
    if(op=='+'||op=='-')return 1;
    if(op=='*'||op=='/')return 2;
    return 0;
}
void infixToPostfix(char*expr){
    int 1,k=0;
    char result[MAX];
    for(i=0;expr[i];i++){
        char ch=expr[i];
        if(isalnum(ch)){
            result[k++]=ch;
        }
        else if(ch=='('){
            push(ch);
        }
        else if(ch==')'){
            while(peek()!='('){
                result[k++]=pop();
                
            }
            pop();
        }
        else if(isOperator(ch)){
            while(top!=-1&&precedence(peek())>=precedence(ch)){
                result[k++]=pop();
            }
            push(ch);
        }
        
        }
        while(top!=-1){
            result[k++]=pop();
        }
        result[k]='\0';
        printf("%s\n",result);
    }
    int main(){
        char expr[MAX];
        scanf("%s",expr);
        infixToPostfix(expr);
        return 0;
}