#include<bits/stdc++.h>
using namespace std;
string s;
int num(int l, int r){
int n = 0;
for (int i = l ; i <= r; i++)
n = n * 10 + s[i] - '0';
return n;
}
int work(int l, int r){
if(l > r) return 0;
int p1 = -1, p2 = -1, p3 = -1;
int cnt = 0;
for(int i = l; i <= r; i++){
if(s[i] == '(') cnt++;
if(s[i] == ')') cnt--;
if((s[i] == '+' || s[i] == '-') && cnt == 0) p1 = i;
if((s[i] == '*' || s[i] == '/') && cnt == 0) p2 = i;
if(s[i] == '^' && cnt == 0) p3 = i;
}
if(p1 == -1 && p2 == -1 && p3 == -1){
if(cnt > 0 && s[l] == '(') return work(l + 1, r);
if(cnt < 0 && s[r] == ')') return work(l, r - 1);
if(cnt == 0 && s[l] == '(' && s[r] == ')') return work(l + 1, r - 1);
return num(l, r);
}
if(p1 != -1){
if(s[p1] == '+') return work(l, p1 - 1) + work(p1 + 1, r);
else return work(l, p1 - 1) - work(p1 + 1, r);
}
if(p2 != -1){
if(s[p2] == '*') return work(l, p2 - 1) * work(p2 + 1, r);
else return work(l, p2 - 1) / work(p2 + 1, r);
}
if(p3 != -1)
return (int)pow(work(l, p3 - 1), work(p3 + 1, r));
return 0;
}
int main(){
cin >> s;
cout << work(0 , s.size() - 1) << '\n';
return 0;
}