#include <iostream>
#include <string>
#include <stack>
#include <cstdlib>
using namespace std;

int main() {
	/*const*/ string s;
	stack<int> num;
	stack<int> mar;
	int n1, n2;
	cin >> s;
	for ( int i = 0; i < 100; i++ ) {
		if ( s.substr( i, 1 ) == "+" ) {
			if ( mar.top() == 0 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 + n2 );
				mar.pop();
			} else if ( mar.top() == 1 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 - n2 );
				mar.pop();
			}
			mar.push(0);
		} else if ( s.substr( i, 1 ) == "-" ) {
			mar.push(1);
			if ( mar.top() == 0 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 + n2 );
				mar.pop();
			} else if ( mar.top() == 1 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 - n2 );
				mar.pop();
			}
		} else if ( s.substr( i, 1 ) == "*" ) mar.push(2);
		else if ( s.substr( i, 1 ) == "/" ) mar.push(3);
		else if ( s.substr( i, 1 ) == "(" ) mar.push(4);
		else if ( s.substr( i, 1 ) == ")" ) {
			if ( mar.top() == 0 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 + n2 );
				mar.pop();
			} else if ( mar.top() == 1 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 - n2 );
				mar.pop();
			}
				mar.pop();
		} else if ( s.substr( i, 1 ) == "=" ) {
			if ( mar.top() == 0 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 + n2 );
				mar.pop();
			} else if ( mar.top() == 1 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 - n2 );
				mar.pop();
			}
			cout << num.top();
			break;
		} else {
			n2 = atoi( s.c_str() );
			if ( mar.top() == 2 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 * n2 );
				mar.pop();
			} else if ( mar.top() == 3 ) {
				n1 = num.top();
				num.pop();
				num.push( n1 / n2 );
				mar.pop();
			} else 
				num.push( n2 );
		}
	}		
}