#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAX 100
char stack[MAX][MAX];
int top=-1;
void push(char *str){
    top++;
    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=len-1;i>=0;i++){
        char ch = prefix[i];
        if(isalnum(ch)){
            char temp[2]={ch,'\0'};
            push(temp);
            
        }
        else if(isoperator(ch)){
            if(top<1){
                printf("Invalid input");
                return 0;
                
            }
            char op1[MAX],op2[MAX],newExp[MAX];
            strcpy(op1,pop());
            strcpy(op2,pop());
            sprintf(newExp,sizeof(newExp),"%s%s%c",op1,op2,ch);
            push(newExp);
            
        }
        else{
            printf("Invalid input");
            return 0;
            
        }
    }
    if(top!=0){
        printf("Inlvalid input");
        return 0;
    }
    printf("%s",stack[top]);
    return 0;
}