#include <bits/stdc++.h>
using namespace std;
char ln[100009];
int sm[100009];
int main() {
  gets(ln + 1);
  int i, j, k, t = 0;
  stack<pair<int, int> > st;
  st.push(pair<int, int>(-1, 0));
  for (i = 1; ln[i]; i++) {
    sm[i] = sm[i - 1];
    if (ln[i] == '(') {
      st.push(pair<int, int>(1, i));
    } else if (ln[i] == '[') {
      st.push(pair<int, int>(2, i));
      sm[i]++;
    } else if (st.size() && ((st.top().first == 1 && ln[i] == ')') ||
                             ((st.top().first == 2 && ln[i] == ']')))) {
      st.pop();
      if (sm[i] - sm[st.top().second] > t) {
        t = sm[i] - sm[st.top().second];
        j = st.top().second + 1;
        k = i;
      }
    } else {
      st.push(pair<int, int>(-1, i));
    }
  }
  cout << t << '\n';
  if (t) {
    ln[k + 1] = 0;
    puts(ln + j);
  }
  return 0;
}
