import java.io.BufferedInputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.Set;
public class Main {
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
static Scanner scanner = new Scanner(new BufferedInputStream(System.in));
static boolean[] vis=new boolean[1000];
public static void main(String[] args) {
String s = scanner.next();
if(s==null)return;
for(int i=1;i<s.length();i++) {
if(s.charAt(i)==')') {
for(int j=i-1;j>=0;j--) {
if(s.charAt(j)=='('&&vis[j]==false) {
vis[j]=true;vis[i]=true;
break;
}
else if(s.charAt(j)=='['&&vis[j]==false)break;
}
}else if(s.charAt(i)==']') {
for(int j=i-1;j>=0;j--) {
if(s.charAt(j)=='['&&vis[j]==false) {
vis[j]=true;vis[i]=true;
break;
}
else if(s.charAt(j)=='('&&vis[j]==false) {
break;
}
}
}
}
for(int i=0;i<s.length();i++) {
if(!vis[i]) {
if(s.charAt(i)=='('||s.charAt(i)==')') {
out.print("()");
}else out.print("[]");
}else out.print(s.charAt(i));
}
out.flush();
}
}