#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;
}
