#include <bits/stdc++.h>
using namespace std;
int k, m;
string str, ans, tmp;
set<int> s;
set<int>::iterator it;
set<int>::iterator it1;
stack<pair<char, int> > st;
int main() {
  cin >> str;
  st.push(make_pair(str[0], 0));
  for (int i = 1; i < str.length(); i++) {
    if (st.size() > 0 && st.top().first == '(' && str[i] == ')') {
      s.insert(st.top().second);
      s.insert(i);
      st.pop();
    } else if (st.size() > 0 && st.top().first == '[' && str[i] == ']') {
      s.insert(st.top().second);
      s.insert(i);
      st.pop();
    } else {
      st.push(make_pair(str[i], i));
    }
  }
  m = 0;
  k = 0;
  tmp = "";
  if (s.size() == 0) {
    cout << 0;
    return 0;
  }
  it = s.begin();
  if (str[*it] == '[') k++;
  tmp += str[*it];
  it++;
  for (; it != s.end(); it++) {
    it1 = it;
    it1--;
    if (*it1 + 1 < *it) {
      if (k > m) {
        m = k;
        ans = tmp;
      }
      k = 0;
      tmp = "";
    }
    if (str[*it] == '[') k++;
    tmp += str[*it];
  }
  if (k > m) {
    m = k;
    ans = tmp;
  }
  cout << m << endl << ans;
  return 0;
}
