#include<iostream>
using namespace std;
const char input[] = "9-5*2";
int index = 0;
char LookAhead = input[index];
void Match(char newChar);
void Factor();
void Rest_();
void Rest();
void Term();
void Expression();
int main(){
Expression();
return 0;
}
void Match(char newChar){
if(newChar == LookAhead){
index++;
LookAhead = input[index];
}
}
void Expression(){
Term();
Rest();
}
void Term(){
Factor();
Rest_();
}
void Rest(){
if(LookAhead == '+'){
Match('+');
Term();
cout << '+';
Rest();
}else if(LookAhead == '-'){
Match('-');
Term();
cout << '-';
Rest();
}else{
}
}
void Rest_(){
if(LookAhead == '*'){
Match('*');
Factor();
cout << '*';
Rest_();
}else if(LookAhead == '/'){
Match('/');
Factor();
cout << '/';
Rest_();
}else{
}
}
void Factor(){
if(isdigit(LookAhead)){
cout << LookAhead;
Match(LookAhead);
}
}
I2luY2x1ZGU8aW9zdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgY2hhciBpbnB1dFtdID0gIjktNSoyIjsKaW50IGluZGV4ID0gMDsKY2hhciBMb29rQWhlYWQgPSBpbnB1dFtpbmRleF07Cgp2b2lkIE1hdGNoKGNoYXIgbmV3Q2hhcik7CnZvaWQgRmFjdG9yKCk7CnZvaWQgUmVzdF8oKTsKdm9pZCBSZXN0KCk7CnZvaWQgVGVybSgpOwp2b2lkIEV4cHJlc3Npb24oKTsKCgppbnQgbWFpbigpewogICAgRXhwcmVzc2lvbigpOwogICAgcmV0dXJuIDA7Cn0KCnZvaWQgTWF0Y2goY2hhciBuZXdDaGFyKXsKICAgIGlmKG5ld0NoYXIgPT0gTG9va0FoZWFkKXsKICAgICAgICBpbmRleCsrOwogICAgICAgIExvb2tBaGVhZCA9IGlucHV0W2luZGV4XTsKICAgIH0KfQoKdm9pZCBFeHByZXNzaW9uKCl7CiAgICBUZXJtKCk7CiAgICBSZXN0KCk7Cn0KCnZvaWQgVGVybSgpewogICAgRmFjdG9yKCk7CiAgICBSZXN0XygpOwp9Cgp2b2lkIFJlc3QoKXsKICAgIGlmKExvb2tBaGVhZCA9PSAnKycpewogICAgICAgIE1hdGNoKCcrJyk7CiAgICAgICAgVGVybSgpOwogICAgICAgIGNvdXQgPDwgJysnOwogICAgICAgIFJlc3QoKTsKICAgIH1lbHNlIGlmKExvb2tBaGVhZCA9PSAnLScpewogICAgICAgIE1hdGNoKCctJyk7CiAgICAgICAgVGVybSgpOwogICAgICAgIGNvdXQgPDwgJy0nOwogICAgICAgIFJlc3QoKTsKICAgIH1lbHNlewoKICAgIH0KfQoKdm9pZCBSZXN0XygpewogICAgaWYoTG9va0FoZWFkID09ICcqJyl7CiAgICAgICAgTWF0Y2goJyonKTsKICAgICAgICBGYWN0b3IoKTsKICAgICAgICBjb3V0IDw8ICcqJzsKICAgICAgICBSZXN0XygpOwogICAgfWVsc2UgaWYoTG9va0FoZWFkID09ICcvJyl7CiAgICAgICAgTWF0Y2goJy8nKTsKICAgICAgICBGYWN0b3IoKTsKICAgICAgICBjb3V0IDw8ICcvJzsKICAgICAgICBSZXN0XygpOwogICAgfWVsc2V7CgogICAgfQp9Cgp2b2lkIEZhY3RvcigpewogICAgaWYoaXNkaWdpdChMb29rQWhlYWQpKXsKICAgICAgICBjb3V0IDw8IExvb2tBaGVhZDsKICAgICAgICBNYXRjaChMb29rQWhlYWQpOwogICAgfQp9