func_code_string: #include <bits/stdc++.h>   using namespace std;   map<string, int> hsh;   int check(string str, int l, int r) {     int pos = 0, cur = 0;     for (int i = r; i >= l; i--) {       if (str[i] ==  ( )         cur++;       else if (str[i] ==  ) )         cur--;       else if (cur == 0 && pos == 0 && (str[i] ==  *  || str[i] ==  / ))         pos = i;       else if (cur == 0 && (str[i] ==  +  || str[i] ==  - )) {         int lft = check(str, l, i - 1), rgt = check(str, i + 1, r);         if (lft == 2 || rgt == 2) return 2;         if (str[i] ==  + )           return 3;         else if (str[i] ==  - ) {           if (rgt == 3)             return 2;           else             return 3;         }       }     }     if (pos) {       int lft = check(str, l, pos - 1), rgt = check(str, pos + 1, r);       if (lft == 2 || rgt == 2) return 2;       if (str[pos] ==  * ) {         if (lft == 3 || rgt == 3)           return 2;         else           return 4;       } else if (str[pos] ==  / ) {         if (lft == 3 || rgt == 3 || rgt == 4)           return 2;         else           return 4;       }     } else if (str[l] ==  (  && str[r] ==  ) ) {       if (check(str, l + 1, r - 1) == 2)         return 2;       else         return 1;     } else {       string res =   ;       for (int i = l; i <= r; i++) res += str[i];       if (hsh[res])         return hsh[res];       else         return 1;     }   }   int main() {     int n;     string s, exp, ques;     cin >> n;     for (int i = 0; i < n; i++) {       cin >> s;       if (s ==  # ) cin >> s;       cin >> s;       getline(cin, exp);       ques =   ;       for (int j = 0; j < exp.length(); j++)         if (exp[j] !=    ) ques += exp[j];       hsh[s] = check(ques, 0, ques.length() - 1);     }     getline(cin, exp);     ques =   ;     for (int i = 0; i < exp.length(); i++)       if (exp[i] !=    ) ques += exp[i];     if (check(ques, 0, ques.length() - 1) == 2)       cout <<  Suspicious  << endl;     else       cout <<  OK  << endl;     return 0;   }   