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.
from collections import deque

a = input() + '$'
n = len(a)
best = 0
cmin = 1000 ** 3
cend = 0
cur = 0
mind = 0
mend = 0
stck = [[0, 0] for i in range(n)]
top = 0 
d = {')' : '(', ']' : '['}
for ind, i in enumerate(a):
    if(i == '(' or i == '['):
        stck[top] = [i, ind]
        top+=1
    elif(i == ')' or i == ']'):
        top-=1
        if(stck[top][0] != d[i]):
            #epic fail
            if(best < cur):
                best = cur 
                mind = cmin
                mend = cend
            top = 0
            cmin = 1000 ** 3
        else:
            if(cmin > stck[top][1]):
                cmin = stck[top][1]
            cend = ind
            if(i == ']'):
                cur+=1
    else:
        #epic fail
        if(best < cur):
            best = cur 
            mind = cmin
            mend = cend
        top = 0
        cmin = 1000 ** 3
print(best)
if(best != 0):
    print(*a[mind:mend + 1], sep = '')