A bracket sequence is a string, containing only characters "(", ")", "[" and "]".

A correct bracket sequence is a bracket sequence that can be transformed into a correct arithmetic expression by inserting characters "1" and "+" between the original characters of the sequence. For example, bracket sequences "()[]", "([])" are correct (the resulting expressions are: "(1)+[1]", "([1+1]+1)"), and "](" and "[" are not. The empty string is a correct bracket sequence by definition.

A substring *s*[*l*... *r*] (1 ≤ *l* ≤ *r* ≤ |*s*|) of string *s* = *s*<sub class="lower-index">1</sub>*s*<sub class="lower-index">2</sub>... *s*<sub class="lower-index">|*s*|</sub> (where |*s*| is the length of string *s*) is the string *s*<sub class="lower-index">*l*</sub>*s*<sub class="lower-index">*l* + 1</sub>... *s*<sub class="lower-index">*r*</sub>. The empty string is a substring of any string by definition.

You are given a bracket sequence, not necessarily correct. Find its substring which is a correct bracket sequence and contains as many opening square brackets «[» as possible.
The first and the only line contains the bracket sequence as a string, consisting only of characters "(", ")", "[" and "]". It is guaranteed that the string is non-empty and its length doesn't exceed 10<sup class="upper-index">5</sup> characters.
x = input()
s = []
ind = 0
check = []
for i in range(len(x)):
    el = x[i]
    if el in '([':
        s.append((el, i))
    elif s:
        if s[-1][0] == '(' and el == ')':
            check.append((s[-1][1], i))
            s.pop()
        elif s[-1][0] == '[' and el == ']':
            check.append((s[-1][1], i))
            s.pop()
            
check = sorted(check, key=lambda x:(x[0], x[1]))         
if len(check) == 0:
    print(0)
elif (len(s) == 0 and check == []) or (check[0] == (0, len(x) - 1)):
    print(x.count('['))
    print(x)
else:
    mal, mar = check[0][0], check[0][1]
    ma, ind1, ind2 = -10**10, 0, 0
    for l, r in check:
        if (mal <= l and mar >= r):
            continue
        elif (mar + 1 == l):
            mar = r
        else:
            if ma < x[mal: mar + 1].count('['):
                ma = x[mal : mar + 1].count('[')
                ind1, ind2 = mal, mar
            mal, mar = l, r
    if ma < x[mal: mar + 1].count('['):
        ma = x[mal : mar + 1].count('[')
        ind1, ind2 = mal, mar
    print(ma)
    print(x[mal:mar + 1])


