#include<iostream>
#include<string>
#include<stack>
#include<cmath>
using namespace std;
stack<char> a1;
int gg(char ch)
{
if (ch == '+')
return 1;
else if (ch == '-')
return 1;
else if (ch == '*')
return 2;
else if (ch == '/')
return 2;
else if (ch == '^')
return 3;
else if (ch == '(')
return 0;
}
int cal(int a, int b, char ch)
{
if (ch == '+')
{
return a + b;
}
else if (ch == '-')
{
return a - b;
}
else if (ch == '*')
{
return a * b;
}
else if (ch == '/')
{
return a / b;
}
else if (ch == '^')
{
return pow(a, b);
}
}
int main() {
int i, j;
string s, ans;
cin>>s;
for (i = 0; i < s.length(); ++i)
{
if (s[i] >= '0' && s[i] <= '9')
{
ans.push_back(s[i]);
}
else
{
if(a1.empty())
a1.push(s[i]);
else
{
if (s[i] != '(' && s[i] != ')')
{
if(gg(a1.top()) < gg(s[i]))
{
a1.push(s[i]);
}
else
{
while(gg(a1.top()) >= gg(s[i]))
{
char ch = a1.top();
ans.push_back(ch);
a1.pop();
if (a1.empty())
break;
}
a1.push(s[i]);
}
}
else if (s[i] == '(')
{
a1.push(s[i]);
}
else if (s[i] == ')')
{
while(a1.top() != '(')
{
char ch = a1.top();
ans.push_back(ch);
a1.pop();
}
a1.pop();
}
}
}
}
while(!a1.empty())
{
char ch = a1.top();
ans.push_back(ch);
a1.pop();
}
for (i = 0; i < s.length()-1; ++i)
cout<<ans[i]<<' ';
cout<<ans[i]<<endl;
int as[100] = {0}, k = 0, flag = 0;
for (i = 0; i < ans.length(); ++i)
{
if (ans[i] < '0' || ans[i] > '9')
{
int ch = cal(as[k-2], as[k-1], ans[i]);
as[k - 1] = 0;
as[k - 2] = ch;
k = k - 1;
flag = 1;
}
else
{
as[k] = ans[i] - '0';
k++;
}
if (flag == 1)
{
for (j = 0; j < k; ++j)
cout<<as[j]<<' ';
for (j = i + 1; j < s.length()-1; ++j)
cout<<ans[j]<<' ';
cout<<ans[j]<<endl;
flag = 0;
}
}
return 0;
}