func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = int(1e5) + 10;   const int K = 11;   const int MOD = int(1e9) + 7;   const int INF = int(2e9) + 5;   const long long INF64 = 1e18;   int dp[N];   void solve() {     string s;     cin >> s;     stack<int> st;     int n = s.length();     for (int i = 0; i < n; i++) {       if (s[i] ==  (  || s[i] ==  [  || s[i] ==  { ) {         st.push(i);       } else {         if (st.empty()) continue;         int t = st.top();         if (s[i] ==  )  && s[t] ==  ( ) {           dp[i] = i - t + 1;           if (t > 0) dp[i] += dp[t - 1];           st.pop();         } else if (s[i] ==  ]  && s[t] ==  [ ) {           dp[i] = i - t + 1;           if (t > 0) dp[i] += dp[t - 1];           st.pop();         } else if (s[i] ==  }  && s[t] ==  { ) {           dp[i] = i - t + 1;           if (t > 0) dp[i] += dp[t - 1];           st.pop();         } else {           while (!st.empty()) st.pop();         }       }     }     int i = n - 1;     int mx = 0, index = -1;     while (i >= 0) {       if (dp[i] == 0) {         i--;         continue;       }       int cnt = 0, t = i;       int x = dp[i];       for (int j = 0; j < x; j++) {         if (s[i] ==  [ ) cnt++;         i--;       }       if (cnt > mx) {         mx = cnt;         index = t;       }     }     if (mx == 0) {       cout << 0 <<   n ;       return;     }     cout << mx <<   n ;     cout << s.substr(index + 1 - dp[index], dp[index]);   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     int t;     t = 1;     while (t--) {       solve();     }     return 0;   }   