#include<bits/stdc++.h>
using namespace std;
struct lhh
{
int pos,val;
};
lhh st[109];
int top;
int ok[109],data[109],n;
int main()
{
n=0;
char c;
while(cin>>c)
{
if(c=='(')
{
data[++n]=-1;
}
if(c=='['){data[++n]=-2;}
if(c==')'){data[++n]=1;}
if(c==']'){data[++n]=2;}
}
top=-1;
for(int i=1;i<=n;i++)
{
if(data[i]>0)
{
if(top<0){ok[i]=1;}
else
{
if(st[top].val+data[i]!=0)
{
ok[st[top].pos]=1;
ok[i]=1;
}
top--;
}
}
else
{
top++;
st[top]={i,data[i]};
}
}
while(top>-1)
{
ok[st[top].pos]=1;
top--;
}
for(int i=1;i<=n;i++)
{
if(ok[i]==0)
{
if(data[i]==-1)cout<<"(";
if(data[i]==-2)cout<<"[";
if(data[i]==1)cout<<")";
if(data[i]==2)cout<<"]";
}
else
{
if(data[i]==-1)cout<<"()";
if(data[i]==-2)cout<<"[]";
if(data[i]==1)cout<<"()";
if(data[i]==2)cout<<"[]";
}
}
return 0;
}