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

#define MAX 199

void initialize();
int isEmpty();
int isFull();
void push( int x );
int pop();

int top;
int S[MAX];

int main( void ){
	
	int x , y;
	int n;
	char s[MAX];
	
	initialize();
	
	while( scanf( "%s" , s) != EOF ){
		
		if( s[0] == '+' ){
			x = pop();
			y = pop();
			push( x + y );
		}else if( s[0] == '-' ){
			x = pop();
			y = pop();
			push( y - x );
		}else if( s[0] == '*' ){
			x = pop();
			y = pop();
			push( x * y );
		}else{
			sscanf( s , "%d" , &n );
			push(n);
		}
	}
	
	printf( "%d\n" , pop() );
	
	return 0;
}

void initialize(){
	
	top = 0;
	
}

int isEmpty(){
	
	if( top == 0 ){
		return 1;
	}else{
		return 0;
	}
	
}

int isFull(){
	
	if( top >= MAX - 1 ){
		return 1;
	}else{
		return 0;
	}
	
}

void push( int x ){
	
	if( isFull() == 1 ){
		fprintf( stderr , "エラー(オーバーフロー)" );
	}else{
		top++;
		S[top] = x;
	}
}

int pop(){
	
	if( isEmpty() == 1 ){
		fprintf( stderr , "エラー(アンダーフロー)" );
		exit(0);
	}else{
		top--;
		return S[top+1];
	}
}


