#include <bits/stdc++.h>
using namespace std;
struct node{
char ch;
node *lc,*rc;
};
char s[100];
int flag=0;
int n;
int i=0;
node * build_tree()
{
if(i>=n)
return NULL;
node *p = new node;
p->lc = NULL; p->rc = NULL; p->ch = '0';//初始化
for(;i<n;i++)
{
if(flag)
{
flag = 0;
p->rc = build_tree();
}else if(s[i]=='(')
{
++i;
p->lc = build_tree();
}else if(s[i]==',')
{
flag = 1;
if(p->ch=='0')return NULL;
else return p;
}else if(s[i]>='A'&&s[i]<='Z')
{
p->ch = s[i];
}else if(s[i]==')')
{
return p;
}
}
return p;
}
void print(node *p)
{
queue<node*>q;
while(!q.empty())q.pop();
q.push(p);
while(!q.empty())
{
node *t = q.front();
q.pop();
printf("%c ",t->ch);
if(t->lc)q.push(t->lc);
if(t->rc)q.push(t->rc);
}
}
int main()
{
scanf("%s",s);
n = strlen(s);
node *root = build_tree();
print(root);
return 0;
}
//A(B(E(K,L),F),C(D(,H)))