#include<bits/stdc++.h>
#define int long long
using namespace std;
string s;
int n;
struct node{
int x,y;
};
bool vis[205];
vector<node> v;
vector<string> vs;
void dfs(int x,int sum){
if(x==v.size()){
if(sum>0){
string ss;
for(int i=1;i<=n;i++){
if(!vis[i]){
ss+=s[i];
}
}
vs.push_back(ss);
}
return ;
}
vis[v[x].x]=vis[v[x].y]=1;
dfs(x+1,sum+1);
vis[v[x].x]=vis[v[x].y]=0;
dfs(x+1,sum);
}
signed main(){
cin>>s;
n=s.size();
s=" "+s;
stack<int> st;
for(int i=1;i<=n;i++){
if(s[i]=='('){
st.push(i);
}else if(s[i]==')'){
v.push_back({st.top(),i});
st.pop();
}
}
dfs(0,0);
sort(vs.begin(),vs.end());
for(int i=0;i<vs.size();i++){
cout<<vs[i]<<"\n";
}
return 0;
}