#include <stdio.h>
#define STACK_SIZE 100
#define MAX_LEN 100

int stack[STACK_SIZE];
int stack_size = 0;

int pop()
{
  if (stack_size<=0) return 0;
  return stack[--stack_size];
}

int push(int a)
{
  stack[stack_size++]=a;
}

int is_digit(char *s)
{
   if (*s=='+'||*s=='-') {
    s++;
    if (*s>='0'&&*s<='9') return 1;
    return 0;
  }
  if (*s >= '0' && *s <= '9') return 1;
  return 0;
}

int get_number(char *s)
{
  int sign=0,n=0;

  if(*s=='+') {
    s++;
  }else if(*s=='-') {
    sign=1;
    s++;
  }
while(*s>='0'&&*s<='9') {
    n=n*10+(*s-'0');
    s++;
  }
  if(sign)return -n;
  return n;
}

int calc_rpn(char *s)
{
  int a, b, n;

while (*s) {
 if (is_digit(s)) {
      n=get_number(s);
      push(n);
      while(*s=='-'||*s=='+') {
        s++;
      }
      while (n){
        n/=10;
        s++;
      }} else {
      switch(*s){
      case '+':
        a=pop();
        b=pop();
        push(b+a);
        break;
      case '-':
        a=pop();
        b=pop();
        push(b-a);
        break;
      case '*':
        a=pop();
        b=pop();
        push(b*a);
        break;
      case '/':
        a=pop();
        b=pop();
        if(a==0) break;
        push(b/a);
        break;
      case '%':
        a=pop();
        b=pop();
        if(a==0) break;
        push(b%a);
      }
      s++;
    }
  }
  return pop();
}

int main()
{
  char s[MAX_LEN];
  scanf("%[^\n]*s", s);
  printf("%d\n", calc_rpn(s));
  return 0;
}