import java.io.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
Deque<Integer> deque = new LinkedList<>();
Deque<Character> calculate = new LinkedList<>();
String str;
char ch;
StringBuilder sb = new StringBuilder();
str = br.readLine();
for(int i = 0 ; i < str.length() ; i++){
ch = str.charAt(i);
if(ch >= '0' && ch <= '9'){
sb.append(ch);
if(i + 1 == str.length()){
deque.offer(Integer.parseInt(String.valueOf(sb)) % 10000);
}
else if(i + 1 < str.length() && !(str.charAt(i+1) >= '0' && str.charAt(i+1) <= '9')){
deque.offer(Integer.parseInt(String.valueOf(sb)) % 10000);
sb.delete(0,sb.length());
}
}
else{
if(calculate.isEmpty()){
calculate.offer(ch);
}
else if(!deque.isEmpty() && deque.size() > 1){
if(ch < calculate.peekLast()){
calculate.offer(ch);
}
else{
int x = deque.pollLast();
int y = deque.pollLast();
if(calculate.peekLast() == '*'){
deque.offer(x * y % 10000);
}
else{
deque.offer((x + y) % 10000);
}
calculate.pollLast();
calculate.offer(ch);
}
}
}
}
/*for(Integer x : deque){
System.out.println(x);
}
for(Character x : calculate){
System.out.println(x);
}*/
while(!calculate.isEmpty() && deque.size() > 1){
int x = deque.pollLast();
int y = deque.pollLast();
ch = calculate.pollLast();
if(ch == '*'){
deque.offer(x * y % 10000);
}
else{
deque.offer((x + y) % 10000);
}
}
if(!deque.isEmpty()){
out.write(deque.peek() + "");
}
out.flush();
out.close();
br.close();
}
}
ps:注释部分是我做题的时候来检验最后出来的结果,Deque用pollLast还要加上一个数量限定