#include <iostream>
#include <string>
#include <vector>
using namespace std;
const int MOD = 10007;
int main() {
string s;
cin >> s;
vector<int> a; // 存取每个括号中的常数
// 分析每个括号内的常数,包括其符号
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(') {
i++;
int sign = (s[i + 1] == '+') ? 1 : -1;
int num = 0;
for (int j = i + 2; j < s.size() && s[j] != ')'; j++) {
num = num * 10 + (s[j] - '0');
}
a.push_back(sign * num);
}
}
int n = a.size();
// 特殊情况:如果只有一个因子
if (n == 1) {
int result = (a[0] % MOD + MOD) % MOD;
cout << result << endl;
return 0;
}
// 使用前缀积和后缀积的方法
vector<int> prefix(n + 1, 1); // 前缀积
vector<int> suffix(n + 1, 1); // 后缀积
// 计算前缀积:prefix[i] = a[0] * a[1] * ... * a[i-1]
for (int i = 0; i < n; i++) {
int num_mod = (a[i] % MOD + MOD) % MOD; // 处理负数
prefix[i + 1] = (prefix[i] * num_mod) % MOD;
}
// 计算后缀积:suffix[i] = a[i] * a[i+1] * ... * a[n-1]
for (int i = n - 1; i >= 0; i--) { // 注意:这里应该是 i--
int num_mod = (a[i] % MOD + MOD) % MOD; // 处理负数
suffix[i] = (suffix[i + 1] * num_mod) % MOD;
}
// 计算一次项系数
int linear_coeff = 0;
for (int i = 0; i < n; i++) {
// 除了a[i]之外所有数的乘积 = prefix[i] * suffix[i+1]
int product_without_i = (prefix[i] * suffix[i + 1]) % MOD;
linear_coeff = (linear_coeff + product_without_i) % MOD;
}
// 处理负数结果
linear_coeff = (linear_coeff % MOD + MOD) % MOD;
cout << linear_coeff << endl;
return 0;
}