#include<iostream>#include<stack>#include<vector>#include<queue>#include<set>#include<cstring>#include<cstdio>using namespace std;char str[300];void init(vector<set<int> > &adj){ int x,y,n,len=strlen(str),pos=0; stack<int>num; while(pos<len-1) { if(str[pos]=='(') { sscanf(str+pos+1,"%d%n",&x,&n); pos+=n+1; num.push(x); } else if(str[pos]==')') { y = num.top(); num.pop(); x = num.top(); adj[x].insert(y); adj[y].insert(x); pos++; } else if(str[pos]==' ') pos++; }}int main(){ int x,y,i,sum; while(gets(str)) { vector<set<int> >adj(100,set<int>()); x = y = 1; init(adj); priority_queue<int,vector<int>,greater<int> >leafs; sum=0; for(i=1;adj[i].size();i++) { sum++; if(adj[i].size()==1) leafs.push(i); } for(i=1;i<sum;i++){ x = leafs.top(); leafs.pop(); y = *(adj[x].begin()); adj[x].erase(y); adj[y].erase(x); if(adj[y].size()==1) leafs.push(y); if(i>1) cout<<' '; cout<<y; } cout<<endl; } return 0;}