#include <bits/stdc++.h>
using namespace std;
int n;
map<string, int> def;
int getgra(string s) {
  if (def.count(s)) return def[s];
  int t = 0;
  for (int i = 0; i < s.size(); i++)
    if (islower(s[i]) || isupper(s[i]) || isdigit(s[i])) t++;
  if (t == s.size()) return 0;
  vector<pair<int, int> > v;
  vector<pair<char, int> > op;
  t = 0;
  int bk = 0;
  for (int i = 0; i < s.size(); i++) {
    if (s[i] == '(') {
      if (!t) bk = i;
      t++;
    } else if (s[i] == ')')
      t--;
    if (!t) {
      if (s[i] == ')')
        v.push_back(make_pair(bk, i));
      else if (s[i] == '+' || s[i] == '-' || s[i] == '*' || s[i] == '/')
        op.push_back(make_pair(s[i], i));
      else {
        int it = i;
        while (it < s.size() &&
               (islower(s[it]) || isupper(s[it]) || isdigit(s[it])))
          it++;
        v.push_back(make_pair(i, it - 1));
        i = it - 1;
      }
    }
  }
  if (v.size() == 1)
    return getgra(s.substr(v[0].first + 1, v[0].second - v[0].first - 1)) == 3
               ? 3
               : 0;
  for (int i = (int)op.size() - 1; i >= 0; i--) {
    if (op[i].first == '+') {
      int x = getgra(s.substr(0, op[i].second)),
          y = getgra(s.substr(op[i].second + 1));
      return (x == 3 || y == 3) ? 3 : 1;
    }
    if (op[i].first == '-') {
      int x = getgra(s.substr(0, op[i].second)),
          y = getgra(s.substr(op[i].second + 1));
      return (x == 3 || y == 3 || y == 1) ? 3 : 1;
    }
  }
  for (int i = (int)op.size() - 1; i >= 0; i--) {
    if (op[i].first == '*') {
      int x = getgra(s.substr(0, op[i].second)),
          y = getgra(s.substr(op[i].second + 1));
      return (x == 3 || y == 3 || x == 1 || y == 1) ? 3 : 2;
    }
    if (op[i].first == '/') {
      int x = getgra(s.substr(0, op[i].second)),
          y = getgra(s.substr(op[i].second + 1));
      return (x == 3 || x == 1 || y != 0) ? 3 : 2;
    }
  }
}
int main() {
  cin >> n;
  cin.ignore();
  for (int i = 0; i < n; i++) {
    string st;
    getline(cin, st);
    int t = 0;
    while (t < st.size() && st[t] == ' ') t++;
    t++;
    while (t < st.size() && st[t] == ' ') t++;
    t += 6;
    while (t < st.size() && st[t] == ' ') t++;
    string nam = "";
    while (t < st.size() &&
           (islower(st[t]) || isupper(st[t]) || isdigit(st[t])))
      nam += st[t], t++;
    t++;
    string tot = "";
    for (int i = t; i < st.size(); i++)
      if (st[i] != ' ') tot += st[i];
    def[nam] = getgra(tot);
  }
  string st, tot = "";
  getline(cin, st);
  for (int i = 0; i < st.size(); i++)
    if (st[i] != ' ') tot += st[i];
  cout << (getgra(tot) == 3 ? "Suspicious" : "OK");
  return 0;
}
