#include<bits/stdc++.h>
using namespace std;
struct node{
char opt;
int x,y;};
string s;
int l,r,num1,num2=1,a[100025];
queue<node >b;
bool f[100025];
int main(){
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]=='+'||s[i]=='*'){
num1++;
b.push( node{s[i],num1-1,num1});}
a[num1]=a[num1]*10+(s[i]-'0');}
for(int i=1;i<=num1;i++) f[i]=1;
node cnt;
for(int i=1;i<=num2;i++){
cnt=b.front();
b.pop();
if(cnt.opt=='*'){
l=cnt.x,r=cnt.y;
while(f[l]) l--;
while(f[r]) r++;
a[l]=((a[l]%10000)*(a[r]%10000))%10000,a[r]=0,f[r]=0;
}else b.push(cnt);}
for(int i=1;i<=num2;i++){
cnt=b.front();
b.pop();
l=cnt.x,r=cnt.y;
while(f[l]) l--;
while(f[r]) r++;
a[l]=((a[l]%10000)+(a[r]%10000))%10000,a[r]=0,f[r]=0;}
int ans=0;
while(f[ans]) ans++;
cout<<a[ans];
return 0;}
0pts,自我检查感觉没问题,求大佬指教