#include <bits/stdc++.h>
using namespace std;
int main() {
  string s;
  cin >> s;
  stack<int> st;
  for (int i = 0; i < s.size(); i++) {
    if (st.empty() || s[i] == '[' || s[i] == '(')
      st.push(i);
    else if ((s[st.top()] == '[' && s[i] == ']') ||
             (s[st.top()] == '(' && s[i] == ')'))
      st.pop();
    else
      st.push(i);
  }
  st.push(s.size());
  int l = 0, r = 0;
  int start = 0, end = 0, res = 0;
  while (!st.empty()) {
    if (st.size() != 1) {
      r = st.top() - 1;
      st.pop();
      l = st.top() + 1;
    } else {
      r = st.top() - 1;
      st.pop();
      l = 0;
    }
    if (int num = count(s.begin() + l, s.begin() + r + 1, '['); num > res) {
      res = num;
      start = l;
      end = r;
    }
  }
  cout << res << endl;
  if (res > 0) cout << s.substr(start, end - start + 1);
  return 0;
}
