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

#define MAX 101
//グローバル変数
int top;
long int a[MAX];

//topの初期化
void initialize(){
	top = 0;
}

//スタックが空かどうか
int isEmpty(int top){
	if(top == 0){
		return 1;
	}
	else{
		return 0;
	}
}

//スタックが満杯かどうか
int isFull(int top){
	if(top >= MAX - 1){
		return 1;
	}
	else{
		return 0;
	}
}

//配列に数字を入れる
void push(long int ope){
	if(!(isFull(top))){
		top++;
		a[top] = ope;
	}
}

//配列から数字を取り出す
long int pop(){
	if(!(isEmpty(top))){
		top--;
		return a[top];
	}
}
int main(){
	long int x,y;	//計算用変数
	char ch ;		//数式
	
	initialize();
	
	while( ch != '\n' ){
		ch = getchar();
		
		//足し算
		if ( ch == '+' ){
			y = pop();
			x = pop();
			x = x + y;
			push(x);
		}
		//引き算
		else if ( ch == '-' ){
			y = pop();
			x = pop();
			x = x - y;
			push(x);
		}
		//掛け算
		else if ( ch == '*' ){
			y = pop();
			x = pop();
			x = x * y;
			push(x);
		}
		//数字を配列に挿入
		else {
			x = 0;
			while(ch != ' '){
				x = x * 10 + atol(ch);
			}
			push(x);
		}
	}
	//出力
	printf("%d\n",a[1]);
	return 0;
}

