#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=4005;
string change(int x)
{
string ans="";
while(x)
{
ans.push_back((char)('0'+x%10));
x/=10;
}
reverse(ans.begin(),ans.end());
return ans;
}
string get(int cnt)
{
return '('+change(cnt)+')';
}
string max_(string a,string b)
{
if(a.length()>b.length())
{
return a;
}else if(b.length()>a.length())
{
return b;
}
if(a>b)
{
return a;
}else
{
return b;
}
}
string sub(string a,string b)
{
bool fl=false;
if(max_(a,b)==b && a!=b)
{
fl=true;
swap(a,b);
}
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int lena=a.length(),lenb=b.length();
while(lena<lenb)
{
a+='0';
lena++;
}
while(lenb<lena)
{
b+='0';
lenb++;
}
// cout<<a<<"\n"<<b<<"\n";
int jiewei=0;
string ans="";
for(int i=0;i<lena;i++)
{
int c=a[i]-'0'-jiewei-(b[i]-'0');
jiewei=0;
if(c<0)
{
c+=10;
jiewei=1;
}
ans+=(char)(c+'0');
}
reverse(ans.begin(),ans.end());
bool b1=false;
string anss="";
for(int i=0;i<ans.length();i++)
{
if(!(!b1 && ans[i]=='0'))
{
b1=true;
anss+=ans[i];
}
}
if(fl)
{
anss='-'+anss;
}
if(anss=="")
{
anss="0";
}
return anss;
}
string add(string a,string b)
{
bool flag=false;
if(a[0]=='-' && b[0]!='-')
{
a.erase(0,1);
return sub(b,a);
}
if(a[0]!='-' && b[0]=='-')
{
b.erase(0,1);
return sub(a,b);
}
if(a[0]=='-' && b[0]=='-')
{
flag=true;
a.erase(0,1);
b.erase(0,1);
}
reverse(a.begin(),a.end());
reverse(b.begin(),b.end());
int lena=a.length(),lenb=b.length();
while(lena<lenb)
{
a+='0';
lena++;
}
while(lenb<lena)
{
b+='0';
lenb++;
}
int c=0,jinwei=0;
string ans="";
for(int i=0;i<lena;i++)
{
c=a[i]-'0'+b[i]-'0'+jinwei;
jinwei=0;
if(c>=10)
{
c%=10;
jinwei=1;
}
ans+=(char)(c+'0');
}
if(jinwei)
{
ans+='1';
}
if(flag)
{
ans+='-';
}
reverse(ans.begin(),ans.end());
return ans;
}
int a[N],b[N],c[N];
string mul(string aa,string bb)
{
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
int lena=aa.length(),lenb=bb.length();
for(int i=1;i<=lena;i++)
{
a[i]=aa[i-1]-'0';
}
for(int i=1;i<=lenb;i++)
{
b[i]=bb[i-1]-'0';
}
for(int i=lena;i>=1;i--)
{
for(int j=lenb;j>=1;j--)
{
c[i+j-1]+=a[i]*b[j];
}
}
int len=lena+lenb-1;
for(int i=len;i>=1;i--)
{
if(c[i]>=10)
{
c[i-1]+=c[i]/10;
c[i]%=10;
}
}
bool fl=false;
string ans="";
for(int i=0;i<=len;i++)
{
if(!(!fl && c[i]==0))
{
fl=true;
ans+=c[i]+'0';
}
}
if(!fl)
{
ans="0";
}
return ans;
}
signed main()
{
string s;
cin>>s;
if(s[0]>='0' && s[0]<='9')
{
s='+'+s;
}
// s='+'+s;
s+='#';
bool flag=false;
for(int i=0;i<s.length();i++)
{
if(s[i]==s[i+1] && !(s[i]>='0' && s[i]<='9'))
{
int cnt=1,op=i;
char p=s[i];
while(i<s.length())
{
if(s[i]==s[i+1])
{
cnt++;
i++;
}else
{
break;
}
}
s.erase(op,cnt);
s.insert(op,p+get(cnt));
}
}
// cout<<s<<"\n";
int fh=0;
string xs="0",num="0",sum="0";
for(int i=0;i<s.length();i++)
{
if(s[i]=='(')
{
flag=true;
}else if(s[i]==')')
{
flag=false;
}else if(s[i]>='0' && s[i]<='9')
{
if(flag)
{
xs=mul(xs,"10");
string u="";
u+=s[i];
// cout<<s[i]<<"\n";
xs=add(xs,u);
}else
{
num=mul(num,"10");
string u="";
u+=s[i];
// cout<<s[i]<<"\n";
num=add(num,u);
}
}else
{
if(fh==0)
{
fh=(s[i]=='+'?1:-1);
continue;
}
if(xs=="0")
{
xs="1";
}
if(fh==1)
{
sum=add(sum,mul(num,xs));
}else
{
// cout<<num<<" "<<xs<<"\n";
string p=mul(num,xs);
p="-"+p;
// cout<<p<<" "<<sum<<"\n";
sum=add(sum,p);
}
// sum+=fh*num*xs;
xs="0";
fh=(s[i]=='+'?1:-1);
num="0";
}
// cout<<fh<<" "<<xs<<" "<<num<<" "<<sum<<"\n";
}
cout<<sum;
}