#include<bits/stdc++.h>
using namespace std;
struct Node{
string a;
int flag;
}w[101];
int main()
{
string s;
cin>>s;
for(int i=0;i<=101;i++)
w[i].flag=0;
for(int i=0;i<s.size();i++)
{
w[i].a=s[i];
if((s[i]==')')||(s[i]==']'))
{
for(int p=i-1;p>=0;p--)
{
if((w[p].flag==0)&&((s[p]=='(')||(s[p]=='[')))
{
if((s[i]==')')&&(s[p]=='('))
{
w[p].a="";
w[p].flag=1;
w[i].a="()";
w[i].flag=1;
}
else if((s[i]==']')&&(s[p]=='['))
{
w[p].a="";
w[p].flag=1;
w[i].a="[]";
w[i].flag=1;
}
break;
}
}
}
}
for(int i=0;i<s.size();i++)
{
if((w[i].a==")"||w[i].a=="(")&&w[i].flag==0) w[i].a="()";
if((w[i].a=="["||w[i].a=="]")&&w[i].flag==0) w[i].a="[]";
cout<<w[i].a;
}
return 0;
}