#include <bits/stdc++.h>
using namespace std;
map<string, int> dp;
const string op = "+-*/() ";
inline vector<string> split(const string& s) {
  vector<string> ret;
  string cur;
  for (size_t i = 0; i < s.size(); ++i)
    if (op.find(s[i]) != string::npos) {
      if (cur.size()) {
        ret.push_back(cur);
        cur.clear();
      }
      if (s[i] != ' ') ret.push_back(string(1, s[i]));
    } else
      cur += s[i];
  if (cur.size()) ret.push_back(cur);
  return ret;
}
inline int calcdp(vector<string> t) {
  for (size_t i = 0; i < t.size(); ++i)
    if (dp.count(t[i])) {
      if (dp[t[i]] == 1) return 1;
      if (dp[t[i]] == 4 &&
          ((i && (t[i - 1] == "*" || t[i - 1] == "/" || t[i - 1] == "-")) ||
           (i < t.size() - 1 && (t[i + 1] == "*" || t[i + 1] == "/"))))
        return 1;
      if (dp[t[i]] == 3 && (i && t[i - 1] == "/")) return 1;
    }
  int bcnt = 0;
  for (size_t i = 0; i < t.size(); ++i) {
    if (t[i] == "(")
      ++bcnt;
    else if (t[i] == ")")
      --bcnt;
    else if (!bcnt && (t[i] == "+" || t[i] == "-"))
      return 4;
  }
  for (size_t i = 0; i < t.size(); ++i) {
    if (t[i] == "(")
      ++bcnt;
    else if (t[i] == ")")
      --bcnt;
    else if (!bcnt && (t[i] == "*" || t[i] == "/"))
      return 3;
  }
  return 2;
}
int main() {
  int n;
  cin >> n;
  string ln;
  getline(cin, ln);
  for (int i = 1; i <= n; ++i) {
    getline(cin, ln);
    vector<string> tmp = split(ln);
    int j = 0, len = 0;
    while (len < 7) len += tmp[j++].size();
    string name = tmp[j];
    dp[name] = calcdp(vector<string>(tmp.begin() + j + 1, tmp.end()));
  }
  getline(cin, ln);
  vector<string> tmp = split(ln);
  printf("%s\n", calcdp(tmp) == 1 ? "Suspicious" : "OK");
  return 0;
}
