#include <bits/stdc++.h>
int n[50];
int t1 = -1;
char o[50];
int t2 = -1;
int p(char c) {
if (c == '^') return 3;
if (c == '*' || c == '/') return 2;
if (c == '+' || c == '-') return 1;
return 0;
}
void c() {
int b = n[t1--];
int a = n[t1--];
char op = o[t2--];
int r;
if (op == '+') r = a + b;
else if (op == '-') r = a - b;
else if (op == '*') r = a * b;
else if (op == '/') r = a / b;
else if (op == '^') {
r = 1;
for (int i = 0; i < b; i++) {
r *= a;
}
}
n[++t1] = r;
}
int main() {
char s[100];
scanf("%s", s);
int l = strlen(s);
int i = 0;
while (i < l) {
if (s[i] >= '0' && s[i] <= '9') {
int m = 0;
while (i < l && s[i] >= '0' && s[i] <= '9') {
m = m * 10 + (s[i] - '0');
i++;
}
n[++t1] = m;
} else if (s[i] == '(') {
o[++t2] = s[i];
i++;
} else if (s[i] == ')') {
while (o[t2] != '(') {
c();
}
t2--;
i++;
} else {
while (t2 != -1 && o[t2] != '(' && p(o[t2]) >= p(s[i])) {
c();
}
o[++t2] = s[i];
i++;
}
}
while (t2 != -1) {
c();
}
printf("%d", n[t1]);
return 0;
}