#include<bits/stdc++.h>
using namespace std;
struct kuohao{
int id;
char c;
};
stack<kuohao>s;
vector<kuohao>tmp;
vector<kuohao>not_pipei;
bool in(int x){
for(int i = 0;i < (int)not_pipei.size();i++)
if(not_pipei[i].id == x)
return true;
return false;
}
bool pipei(char ch){
if((s.top().c == '(' && ch == ')') || (s.top().c == '[' && ch == ']') || (s.top().c == '{' && ch == '}'))
return true;
return false;
}
int main(){
char ch_;
int id = 1;
while(ch_ != '\n'){
ch_ = getchar();
tmp.push_back((kuohao){id,ch_});
if(pipei(ch_))
s.pop();
else
s.push((kuohao){id,ch_});
id++;
}
if(s.empty())
for(int i = 0;i < (int)tmp.size();i++)
putchar(tmp[i].c);
else{
while(!s.empty()){
not_pipei.push_back(s.top());
s.pop();
}
for(int i = 0;i < (int)tmp.size();i++){
char ch = tmp[i].c;
if(in(i + 1)){
if(ch == '(' || ch == ')')
puts("()");
else if(ch == '[' || ch == ']')
puts("[]");
else
puts("{}");
}
else putchar(ch);
}
}
return 0;
}