rt,10pts。
#include<bits/stdc++.h>
using namespace std;
const int N=1e9+7;
char a[10003];
long long dfs(int l,int r){
// cout<<l<<" "<<r<<"\n";
int x=0,y=0,z=0;
for(int i=l;i<=r;i++){
if(a[i]=='(') x++;
if(a[i]==')') x--;
else {
if(x==0&&(a[i]<'0'||a[i]>'9')){
if(a[i]=='*') y=i;
else z=i;
}
}
}
if(z){
if(a[z]=='+'){
return (dfs(l,z-1)+dfs(z+1,r))%N;
}
if(a[z]=='-'){
return (dfs(l,z-1)-dfs(z+1,r)+N)%N;
}
}
if(y){
return dfs(l,y-1)*dfs(y+1,r)%N;
}
if(a[l]=='('&&a[r]==')') return dfs(l+1,r-1);
else{
int k=0;
for(int i=l;i<=r;i++){
k=k*10+a[i]-'0';
}
return k;
}
}
int main(){
scanf("%s",a+1);
int n= strlen(a+1);
printf("%lld\n",dfs(1,n));
return 0;
}