#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<vector>#include<cmath>#define inf 1<<31-1using namespace std;string s;string dfs(int l,int r){ if(l>=s.size()||r<l)return string(""); for(int i=r;i>=l;i--) { if(s[i]==')') { int j=i,t=0; for(;j>=l;j--) { if(s[j]=='(')t--; if(s[j]==')')t++; if(t==0)break; } if(j>1&&s[j-2]=='l'&&s[j-1]=='n')i=j-3; else i=j-1; } if(i<l)break; if(i==l&&(s[i]=='+'||s[i]=='-'))continue; if(s[i]=='-'||s[i]=='+') { string tl=dfs(l,i-1); string tr=dfs(i+1,r); char tem=s[i]; if(tr[0]=='-') { if(s[i]=='+')tem=' '; else{tem='+';tr.erase(tr.begin());} } return tl+tem+tr; } } for(int i=r;i>=l;i--) { if(s[i]==')') { int j=i,t=0; for(;j>=l;j--) { if(s[j]=='(')t--; if(s[j]==')')t++; if(t==0)break; } if(j>1&&s[j-2]=='l'&&s[j-1]=='n')i=j-3; else i=j-1; } if(i<l)break; if(s[i]=='*') { string tl=dfs(l,i-1); string tr=dfs(i+1,r); string sl=s.substr(l,i-l); string sr=s.substr(i+1,r-i); if(sl[0]=='-')return '('+tl+'*'+sr+sl+'*'+tr+')'; return '('+tl+'*'+sr+'+'+sl+'*'+tr+')'; } else if(s[i]=='/') { string tl=dfs(l,i-1); string tr=dfs(i+1,r); string sl=s.substr(l,i-l); string sr=s.substr(i+1,r-i); char tem='-'; if(sl[0]=='-'){tem='+';sl.erase(sl.begin());} return '('+tl+'*'+sr+tem+sl+'*'+tr+')'+'/'+sr+"^2"; } } if(l==r&&s[l]=='x')return string("1"); else if(s[l]=='('&&s[r]==')') { return '('+dfs(l+1,r-1)+')'; } else if(s[l]=='l'&&s[l+1]=='n') { return '('+dfs(l+3,r-1)+")/"+'('+s.substr(l+3,r-l-3)+')'; } else { return string("0"); }}int main(){ int cas=1; while(cin>>s) { cout<<dfs(0,s.size()-1)<<endl; } return 0;}