func_code_string: #include <bits/stdc++.h>   using namespace std;   bool is_opening(char c) {     switch (c) {       case  ( :       case  [ :       case  { :       case  < :         return true;         break;       case  ) :       case  ] :       case  } :       case  > :         return false;         break;     }   }   bool is_match_bracket(char c1, char c2) {     if (c1 ==  (  && c2 ==  ) ) {       return true;     } else if (c1 ==  [  && c2 ==  ] ) {       return true;     } else if (c1 ==  {  && c2 ==  } ) {       return true;     } else if (c1 ==  <  && c2 ==  > ) {       return true;     }     return false;   }   int main(void) {     string str;     cin >> str;     size_t len = str.length();     int ans = 0;     stack<char> s;     bool imp = false;     for (int i = 0; i < len; ++i) {       bool is_cur_opening = is_opening(str.at(i));       if (!is_cur_opening) {         if (!s.empty() && is_opening(s.top())) {           if (!is_match_bracket(s.top(), str.at(i))) {             ++ans;           }           s.pop();         } else {           imp = true;           break;         }       } else {         s.push(str.at(i));       }     }     if (imp || !s.empty()) {       cout <<  Impossible  << endl;     } else {       cout << ans << endl;     }     return 0;   }   