#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int maxn = 110;
int n;
string mar[maxn];
bool ok[maxn], cmp[maxn], outp[maxn], outm[maxn];
map<string, int> m;
void gt(int id, string s) {
  istringstream buf;
  buf.str(s);
  s.clear();
  while (s != "#define" && s != "define") {
    buf >> s;
  }
  buf >> s;
  m[s] = id;
  string val = "";
  while (buf >> s) {
    val += s;
  }
  val.push_back('!');
  int cnt = 0;
  char safepre = '(';
  bool closepre = 1;
  cmp[id] = 1;
  ok[id] = 1;
  string name = "";
  for (int i = (0); i < (int)(val.length()); ++i) {
    if (val[i] >= 'a' && val[i] <= 'z' || val[i] >= 'A' && val[i] <= 'Z') {
      name.push_back(val[i]);
    } else {
      if (val[i] >= '0' && val[i] <= '9') continue;
      if (m.find(name) != m.end()) {
        if (!ok[m[name]])
          ok[id] = 0;
        else if (!cmp[m[name]]) {
          if (safepre == '-' && outp[m[name]])
            ok[id] = 0;
          else if (safepre == '*' && outp[m[name]])
            ok[id] = 0;
          else if (safepre == '/' && (outp[m[name]] || outm[m[name]]))
            ok[id] = 0;
          if (outp[m[name]])
            closepre = 0;
          else
            closepre = 1;
        }
      }
      name.clear();
      if (val[i] == '(') {
        cnt++;
      } else if (val[i] == ')') {
        cnt--;
        closepre = 1;
        continue;
      } else {
        if ((val[i] == '*' || val[i] == '/') && !closepre) ok[id] = 0;
        if (!cnt) {
          cmp[id] = 0;
          if (val[i] == '+' || val[i] == '-')
            outp[id] = 1;
          else if (val[i] == '*' || val[i] == '/')
            outm[id] = 1;
        }
      }
      safepre = val[i];
    }
    if (!ok[id]) break;
  }
}
int main() {
  cin >> n;
  getline(cin, mar[0]);
  for (int i = (0); i < (int)(n); ++i) {
    getline(cin, mar[i]);
    gt(i, mar[i]);
  }
  string key;
  getline(cin, key);
  istringstream buf;
  buf.str(key);
  key.clear();
  string val = "";
  while (buf >> key) val += key;
  val.push_back('!');
  bool gd = 1;
  string name = "";
  char safepre = '(';
  bool closepre = 1;
  for (int i = (0); i < (int)(val.length()); ++i) {
    if (val[i] >= 'a' && val[i] <= 'z' || val[i] >= 'A' && val[i] <= 'Z') {
      name.push_back(val[i]);
    } else {
      if (val[i] >= '0' && val[i] <= '9') continue;
      if (m.find(name) != m.end()) {
        if (!ok[m[name]])
          gd = 0;
        else if (!cmp[m[name]]) {
          if (safepre == '-' && outp[m[name]])
            gd = 0;
          else if (safepre == '*' && outp[m[name]])
            gd = 0;
          else if (safepre == '/' && (outp[m[name]] || outm[m[name]]))
            gd = 0;
          if (outp[m[name]])
            closepre = 0;
          else
            closepre = 1;
        }
      }
      name.clear();
      if (val[i] == ')') closepre = 1;
      if ((val[i] == '*' || val[i] == '/') && !closepre) gd = 0;
      safepre = val[i];
    }
    if (!gd) break;
  }
  cout << (gd ? "OK" : "Suspicious");
  return 0;
}
