#include<cstdio>
#include<cstring>
using namespace std;
const int N=52;
char s[N],sym[N];
int i,p,l,cnt,num[N];
bool can(){
if(sym[p]=='^') return 1;
if((s[i]=='+'||s[i]=='-')&&sym[p]!='(') return 1;
if((s[i]=='*'||s[i]=='/')&&(sym[p]=='*'||sym[p]=='/')) return 1;
return 0;
}
int fpow(int a,int b){
int res=1;
for(;b;b>>=1,a=a*a) if(b&1) res=res*a;
return res;
}
void push(){
sym[++p]=s[i];
}
void pop(){
switch(sym[p--]){
case '+':num[p]+=num[p+1];break;
case '-':num[p]-=num[p+1];break;
case '*':num[p]*=num[p+1];break;
case '/':num[p]/=num[p+1];break;
case '^':num[p]=fpow(num[p],num[p+1]);break;
}
}
int main(){
scanf("%s",s+1);
l=strlen(s+1);
for(i=1;i<=l;i++){
if(s[i]=='(') cnt++;
if(s[i]==')') cnt--;
}
sym[++p]='(';
for(;cnt>=0;cnt--) s[++l]=')';
for(i=1;i<=l;){
while(s[i]=='('){push();i++;}
int x=0;
while(s[i]>='0'&&s[i]<='9') x=x*10+s[i++]-'0';
num[p]=x;
do{
if(s[i]==')'){
while(sym[p]!='(') pop();
p--;
num[p]=num[p+1];
}
else{
while(can()) pop();
push();
}
i++;
}while(i<=l&&s[i-1]==')');
}
printf("%d",num[0]);
return 0;
}