#include <bits/stdc++.h>
using namespace std;
char second[222222];
int n;
int mx[222222];
int st[222222], stn, rn;
int kol[222222];
char res[222222];
int main() {
  scanf("%s", &(second[1]));
  second[0] = '*';
  n = strlen(second) - 1;
  int r = -1;
  for (int i = 1; i <= n; ++i) {
    kol[i] = kol[i - 1];
    if (second[i] == '(' || second[i] == '[') {
      st[stn++] = i;
      kol[i] += (second[i] == '[');
    } else if (stn > 0) {
      int p = st[stn - 1];
      if ((second[p] == '(' && second[i] == ')') ||
          (second[p] == '[' && second[i] == ']')) {
        mx[i] = kol[i] - kol[p - 1] + mx[p - 1];
        if (r == -1 || mx[r] < mx[i]) r = i;
        --stn;
      } else
        stn = 0;
    }
  }
  if (r == -1) {
    puts("0");
    return 0;
  }
  printf("%d\n", mx[r]);
  int k = mx[r];
  int cur = 0;
  for (int i = r; i >= 0; --i) {
    if (second[i] == '[') --k;
    if (second[i] == ']' || second[i] == ')')
      ++cur;
    else
      --cur;
    res[rn++] = second[i];
    if (k == 0 && cur == 0) break;
  }
  for (int i = rn - 1; i >= 0; --i) putchar(res[i]);
  puts("");
  return 0;
}
