package main

import (
    "fmt"
)

func main() {
    var s string
    for {
        n, _ := fmt.Scan(&s)
        if n == 0 {
            break
        } else {
            fmt.Printf("%s",process(s))
        }
    }
}
func process(s string)string{
    cur := 0
    rev := 0
    // 遍历整个字符串
    for i:=0;i<len(s);{
        if s[i] == '['{
            cur ++
        }else {
            cur --
        }
        if cur < 0 {
            rev ++
            cur = 0
        }
        i++
    }
        // 建立一个字符数组
    strArr := make([]byte,len(s)+rev+cur)
    for i:=0 ;i<len(strArr);i++ {
        if i < rev {
            strArr[i] = '['
        }else if i<len(s)+rev {
            strArr[i] = s[i-rev]
        }else {
            strArr[i] = ']'
        }
    }
    return string(strArr)
}

用cur统计多余的'[',用rev统计多余的']',然后再在前面加上rev个'[',在后面加上cur个'['