#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAX 100
char stack[MAX][MAX];
int top=-1;
void push(char*s){strcpy(stack[++top],s);}
char*pop(){return stack[top--];}
int isOp(char c){return c=='+'||c=='-'||c=='/'||c=='^';}
int valid(char*s){
    for(int i=0;s[i];i++)
        if(isalnum(s[i])&&!isOp(s[i])&&!isspace(s[i]&&s[i]!='('&&s[i]!=')') 
           return 0;
    return 1;    
}
int main(){
    char pre[MAX];
    fgets(pre,MAX,stdin);
    pre[strcspn(pre,"\n")]=0;
    if(!valid(pre)){ printf("Invalid input\n"); return 0;}
    for(int i=strlen(pre)-1;i>=0;i--){
        if(isspace(pre[i]))continue;
        if(isalnum(pre[i])){
            char s[2]={pre[i],0};
            push(s);}
            else if(isOp(pre[i])){
                if(top<1){printf("Invalid input"); return 0;}
                char op1[MAX],op2[MAX],res[MAX];
                strcpy(op1,pop());
                strcpy(op2,pop());
                sprintf(res,"%s%s%c",op1,op2,pre[i]);
                push(res);
            }
        }
        if(top!=0)printf("Invalid input\n");
        return 0;
        else printf("%s",stack[top]);
        return 0;
}