#include<bits/stdc++.h>
using namespace std;
int number[10001];
char symbol[10001];
string s,t;
int i,p;
void push(){
p++;
symbol[p]=s[i];
}
void pop(){
p--;
switch(symbol[p+1]){
case '+': number[p]+=number[p+1]; break;
case '-': number[p]-=number[p+1]; break;
case '*': number[p]*=number[p+1]; break;
case '/': number[p]/=number[p+1]; break;
case '^': number[p]=pow(number[p],number[p+1]); break;
}
}
bool can(){
if((s[i]=='+'||s[i]=='-')&&(symbol[p]!='(')){
return true;
}else if((s[i]=='*'||s[i]=='/')&&(symbol[p]=='^'||symbol[p]=='*'||symbol[p]=='/')){
return true;
}else if(s[i]=='^'&&symbol[p]=='^'){
return true;
}else{
return false;
}
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin>>s;
s="("+s+")";
i=0;p=0;
while(i<s.size()){
while(s[i]=='('){
push();
i++;
}
if(s[i]>='0'&&s[i]<='9'){
int j=i;
do{
i++;
}while(s[i]>='0'&&s[i]<='9');
t=s.substr(j,i-j);
sscanf(t.c_str(),"%d",&number[p]);
}
if(s[i]==')'){
while(symbol[p]!='('){
pop();
}
p--;
number[p]=number[p+1];
}else{
while(can()){
pop();
}
push();
}
i++;
}
cout<<number[0];
return 0;
}