#include<stdio.h>
#include<string.h>
#include<ctype.h>

#define MAX 100

char stack[MAX][MAX];
int top =-1;

void push(char *str){
    strcpy(stack[++top],str);
}

char *pop(){
    return stack[top--];
}

int isOperator(char c){
    return (c=='+' || c=='-' || c=='*' || c=='/');
}

int main(){
    char prefix[MAX];
    scanf("%s",prefix);
    int len = strlen(prefix);
    
    for(int i=0; i<len; i++){
        if(!(isOperator(prefix[i]) || isalnum(prefix[i]) || prefix[i]  =='(' || prefix[i] == ')')){
            printf("Invalid input");
            return 0;
        }
    }
    
    for(int i=len-1; i>=0;i--){
        char c=prefix[i];
        
        if(isalnum(c)){
            char temp[2] = {c,'\0'};
            push(temp);
        }
        else if (isOperator(c)){
            if(top<1){
                printf("Invalid input");
                return 0;
            }
            char op1[MAX],op2[MAX],result[MAX];
            strcpy(op1,pop());
            strcpy(op2,pop());
            sprintf(result,"%s%s%c",op1,op1,c);
            psuh(result);
        }
        else if(c=='(' || c==')'){
            continue;
            
        }
    }
    if(top!=0){
        printf("Invalid input");
        return 0;
    }
    printf("%s",stack[top]);
    return 0;
}