//============================================================================
// 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

//============================================================================
#define MAXSTACK 100
long stack[MAXSTACK];
short ptr;
//============================================================================
void dump(int *A, int N)
{
    int i;

    for (i=0; i<N; i++){
        if (i)
            printf(" ");
        printf("%d", A[i]);
    }
    printf("\n");
}
//============================================================================
void push(long val)
{
    if (MAXSTACK<=ptr)
        return;
    stack[ptr++]=val;
}
//----------------------------------------------------------------------------
long pop()
{
    if (!ptr)
        return 0;
    return stack[--ptr];
}
//============================================================================
void revpol(char *str)
{
    int i,n,*ary; long ope; char *ptr;//, str[100];

    ope=0;
    for (ptr=str; *ptr;){
        switch(*ptr){
            case '+': ope=pop()+ope; ptr++; break;
            case '-': ope=pop()-ope; ptr++; break;
            case '*': ope=pop()*ope; ptr++; break;
            case '/': ope=pop()/ope; ptr++; break;
            case  '0': case '1': case '2': case '3': case '4':
            case '5': case  '6': case '7': case '8': case '9':
                    push(ope);
                    ope = atoi(ptr);
                    while(isdigit(*ptr))
                        ptr++;
                    //printf("%ld entered %d\n", ope, ptr-str);
                break;
            default: ptr++;                 break;
        }
        //printf("%ld\n", ope);
    }
    printf("%ld\n", ope);
}
//============================================================================
int main(void)
{
    int i,n; char str[1000];

    memset(&str, 0, sizeof(str));
    gets(str);
    n=strlen(str);
    for (i=0; i<n; i++){
         //printf("%02X,", str[i]);
         if ('9'<(unsigned char)str[i])
             str[i]=0;
    }
    //printf("\n");
    //printf("%d %s\n", i, str);
    //revpol("500 132 + 132 - 2 * 100 10 10 * + - 50 50 50 50 + + + + 0 999 * + 24 +");
    revpol(str);
    return 0;
}
//============================================================================