#include <bits/stdc++.h>   using namespace std;   long long a, cnt;   int fans = 1, r2;   string b, c, d, n;   struct Node {     string s1;     string s2;     int jyh1 = -1;   } nd[107];   int find(string x) {     int ress = -1;     for (int i = 0; i < cnt; i++) {       if (nd[i].s1 == x) ress = i;     }     return ress;   }   int getans(int x, int re, int xx, int yy) {     int ccnt = 0;     int lev = 3;     if (nd[x].jyh1 == -1) {       for (int i = 0; i < nd[x].s2.length();) {         if (nd[x].s2[i] ==  ( ) {           ccnt++;           i += 2;           continue;         } else if (nd[x].s2[i] ==  ) ) {           ccnt--;           i += 2;           continue;         } else if (isdigit(nd[x].s2[i])) {           while (isdigit(nd[x].s2[i]) && i < nd[x].s2.length()) i++;           i++;           continue;         } else if ((nd[x].s2[i] ==  +  || nd[x].s2[i] ==  - ) && ccnt == 0) {           lev = min(1, lev);           i += 2;           continue;         } else if ((nd[x].s2[i] ==  *  || nd[x].s2[i] ==  / ) && ccnt == 0) {           lev = min(2, lev);           i += 2;           continue;         } else {           string got =   ;           int l = i - 2;           while (nd[x].s2[i] !=     && i < nd[x].s2.length()) {             got += nd[x].s2[i];             i++;           }           if (find(got) == -1) {             i++;             continue;           } else {             int tg = getans(find(got), x, l, i + 1);             if (ccnt == 0) lev = min(r2, lev);             fans = min(fans, tg);             i++;             continue;           }         }       }       nd[x].jyh1 = lev;     }     lev = nd[x].jyh1;     r2 = lev;     if (lev == 3) return 1;     if (lev == 1 &&         (nd[re].s2[xx] ==  -  || nd[re].s2[xx] ==  *  || nd[re].s2[xx] ==  /  ||          nd[re].s2[yy] ==  *  || nd[re].s2[yy] ==  / ))       return 0;     else if (lev == 1)       return 1;     if (lev == 2 && nd[re].s2[xx] ==  / )       return 0;     else if (lev == 2)       return 1;   }   int main() {     cin >> a;     getline(cin, b);     for (int i = 0; i <= a; i++) {       c =   ;       d =   ;       n =   ;       getline(cin, b);       for (int j = 1; j < b.length(); j++) {         if (b[j] ==  e  && b[j - 1] ==  n ) {           j++;           while (b[j] ==    ) j++;           while (b[j] !=    ) {             n += b[j];             j++;           }           b.erase(0, j);           break;         }       }       for (int j = 0; j < b.length(); j++) {         if (b[j] !=    ) d += b[j];       }       b = d;       b =     + b;       for (int j = 1; j < b.length(); j++) {         if (((b[j - 1] ==  +  || b[j - 1] ==  -  || b[j - 1] ==  *  ||               b[j - 1] ==  /  || b[j - 1] ==  (  || b[j - 1] ==  ) ) &&              b[j] !=    ) ||             ((b[j] ==  +  || b[j] ==  -  || b[j] ==  *  || b[j] ==  /  ||               b[j] ==  (  || b[j] ==  ) ) &&              b[j - 1] !=    ))           c +=    , c += b[j];         else           c += b[j];       }       if (i == a) n =  MaIN ;       nd[cnt].s1 = n;       nd[cnt].s2 = c;       cnt++;     }     nd[cnt].s1 =   ;     nd[cnt].s2 =  ( MaIN ) ;     cnt++;     getans(cnt - 2, cnt - 1, 0, 7);     if (fans == 1)       cout <<  OK  << endl;     else       cout <<  Suspicious  << endl;     return 0;   }