#include <bits/stdc++.h>
using namespace std;
const int maxn = 100010;
char s[maxn];
bool match(char a, char b) {
  return (a == '(' && b == ')' || a == '[' && b == ']');
}
bool flag[maxn];
int main() {
  stack<int> st;
  scanf("%s", s + 1);
  int len = strlen(s + 1);
  st.push(1);
  for (int i = 2; i <= len; i++) {
    if (!st.empty()) {
      if (match(s[st.top()], s[i])) {
        flag[i] = true;
        flag[st.top()] = true;
        st.pop();
      } else
        st.push(i);
    } else
      st.push(i);
  }
  int l = -1, r = -1;
  int ans = 0;
  for (int i = 1, j; i <= len; i = j) {
    j = i;
    int mx = 0;
    if (flag[j]) {
      while (j <= len && flag[j]) {
        if (s[j] == '[') mx++;
        j++;
      }
    } else
      j++;
    if (mx > ans) {
      ans = mx;
      l = i, r = j - 1;
    }
  }
  if (l == -1) {
    printf("0\n");
  } else {
    printf("%d\n", ans);
    for (int i = l; i <= r; i++) {
      printf("%c", s[i]);
    }
    puts("");
  }
  return 0;
}
