#include<stdio.h>
#include<stdlib.h>
#include<string.h>

long long operation(char operand,int num1,int num2){
  switch(operand){
    case '+': return num1+num2;
              break;
    case '-': return num2-num1;
              break;
    case '*': return num1*num2;
  }
}



long long pol[1000];
char item[1000];
char num[10];

long long pop(long long a[],int *top){
  *top = *top - 1;
  return a[*top];
}
void push(long long a[],long long value,int *top){
  a[*top] = value;
  *top = *top + 1;
}

int main(){
  
  
  
  int top = 0;
  
  char *c;
  
fgets(c=item,500,stdin);

int len = strlen(item);
int index = 0;

for(int i=0;i<len;i++){
    if(item[i]=='+' || item[i] == '-' || item[i] == '*'){
   long long num1 = pop(pol,&top);
   long long num2 = pop(pol,&top);
  long long result = operation(item[i],num1,num2);
    
   push(pol,result,&top);
  }
  else if(item[i]!=' '){
    num[index++] = item[i];
  }
  else if(item[i] == ' ' && item[i-1] != '+' && item[i-1]!='-' && item[i-1]!='*'){
    num[index] = '\0';
    long long num1 = atoi(num);
   push(pol,num1,&top);
    index = 0;
  }
}

 //for(int i=0;i<10;i++)printf("%lli ",pol.value[i]);
 printf("%lli\n",pol[0]);
 
  return 0;
}
