#include <iostream>
#include <fstream>
#include <cassert>
using namespace std;
int expresie(string& s, int& p, int lvl = 0);
int termen(string& s, int& p, int lvl = 0);
int factor(string& s, int& p, int lvl = 0);
int numar(string& s, int& p, int lvl = 0);
int expresie(string& s, int& p, int lvl) {
assert(p < s.size());
int ans = termen(s, p, lvl + 1);
while (p < s.size() && (s[p] == '+' || s[p] == '-')) {
int sgn = (s[p] == '+' ? 1 : -1);
p++;
ans += sgn * termen(s, p, lvl + 1);
}
return ans;
}
int termen(string& s, int& p, int lvl) {
assert(p < s.size());
int ans = factor(s, p, lvl + 1);
while (p < s.size() && (s[p] == '*' || s[p] == '/')) {
if (s[p] == '*') {
p++;
ans *= factor(s, p, lvl + 1);
} else {
p++;
ans /= factor(s, p, lvl + 1);
}
}
return ans;
}
int factor(string& s, int& p, int lvl) {
assert(p < s.size());
int ans = 0;
if (s[p] == '(') {
p++;
ans = expresie(s, p, lvl + 1);
p++;
} else {
ans = numar(s, p, lvl + 1);
}
return ans;
}
int numar(string& s, int& p, int lvl) {
assert(p < s.size());
int nr = 0;
while (p < s.size() && isdigit(s[p])) {
nr = nr * 10 + s[p] - '0';
p++;
}
return nr;
}
int main() {
ifstream cin("evaluare.in");
ofstream cout("evaluare.out");
string s; cin >> s;
int p = 0;
cout << expresie(s, p) << "\n";
return 0;
}