#include<stdio.h>
#include<stdlib.h>

#define DEBUG

struct Node;
typedef struct Node *ptr;
typedef ptr Stack;

struct Node


{
char cha;
ptr next;
};
Stack CreatStack();
void Push(char,Stack);
void Pop(Stack);
char Top(Stack);
int IsEmpty(Stack);
void MakeEmpty(Stack);
int main()


{
char cha;
Stack s=CreatStack();
while(scanf("%c",&cha)!=EOF)

{
if(cha=='\n')

{
while(!IsEmpty(s))

{printf("%c",Top(s)); Pop(s);}
continue;
} // 清栈
else

{
if(cha!='+'&&cha!='*'&&cha!='-'&&cha!='/'&&cha!='('&&cha!=')')
printf("%c",cha);
else

{
if(cha=='(')
Push(cha,s);
else
if(cha==')')

{
while(Top(s)!='(')

{printf("%c",Top(s)); Pop(s);}
Pop(s);
}
else
if(cha=='*'||cha=='/')

{
while(!IsEmpty(s)&&Top(s)!='+'&&Top(s)!='-'&&Top(s)!='(')

{printf("%c",Top(s)); Pop(s);}
Push(cha,s);
}
else

{
while(!IsEmpty(s)&&Top(s)!='(')

{printf("%c",Top(s)); Pop(s);}
Push(cha,s);
}
}
}
}
system("pause");
return 0;
}
