#include <bits/stdc++.h>
using namespace std;
int val_of_op[200];
int n;
struct T {
  string Name, Expr;
  bool danger;
  int num[5];
  int sum(int a0 = 0, int a1 = 0, int a2 = 0, int a3 = 0) {
    return num[a0] + num[a1] + num[a2] + num[a3];
  }
} macro[1000];
void Eliminate_Space(string &s) {
  int p;
  while ((p = s.find(' ')) != string::npos) s.erase(s.begin() + p);
}
bool isDigit(char c) { return c >= '0' && c <= '9'; }
bool isLetter(char c) { return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'; }
stack<int> Ope, Num;
void Pop(int n) {
  int y = Num.top();
  Num.pop();
  int x = Num.top();
  Num.pop();
  int z = Ope.top();
  Ope.pop();
  if (x != -1 && macro[x].danger || y != -1 && macro[y].danger)
    macro[n].danger = 1;
  if (z == 2 && y != -1 && macro[y].sum(1, 2)) macro[n].danger = 1;
  if (z == 3)
    if (y != -1 && macro[y].sum(1, 2) || x != -1 && macro[x].sum(1, 2))
      macro[n].danger = 1;
  if (z == 4)
    if (x != -1 && macro[x].sum(1, 2) || y != -1 && macro[y].sum(1, 2, 3, 4))
      macro[n].danger = 1;
  Num.push(x);
}
void doit(int n, string &s) {
  while (!Ope.empty()) Ope.pop();
  while (!Num.empty()) Num.pop();
  int p = 0;
  while (p < ((int)(s).size())) {
    if (s[p] == '(') {
      Ope.push(-1);
      p++;
      continue;
    }
    if (s[p] == ')') {
      while (Ope.top() != -1) Pop(n + 1);
      Ope.pop();
      if (Num.top() != -1 && macro[Num.top()].danger) macro[n + 1].danger = 1;
      Num.top() = -1;
      p++;
      continue;
    }
    if (val_of_op[s[p]]) {
      while (!Ope.empty() && val_of_op[s[p]] <= 2 && Ope.top() >= 3) Pop(n + 1);
      Ope.push(val_of_op[s[p]]);
      p++;
      continue;
    }
    string a;
    while (p < ((int)(s).size()) && (isDigit(s[p]) || isLetter(s[p])))
      a.push_back(s[p++]);
    int i = -1;
    for (int j = (1); j <= (n); j++)
      if (macro[j].Name == a) i = j;
    Num.push(i);
  }
  while (!Ope.empty()) macro[n + 1].num[Ope.top()]++, Pop(n + 1);
  if (Num.top() != -1 && macro[Num.top()].danger) macro[n + 1].danger = 1;
}
int main() {
  val_of_op['+'] = 1, val_of_op['-'] = 2, val_of_op['*'] = 3,
  val_of_op['/'] = 4;
  cin >> n;
  getline(cin, macro[1].Name);
  for (int i = (1); i <= (n); i++) {
    getline(cin, macro[i].Name, 'e');
    getline(cin, macro[i].Name, 'e');
    cin >> macro[i].Name;
    getline(cin, macro[i].Expr);
    Eliminate_Space(macro[i].Expr);
    doit(i - 1, macro[i].Expr);
  }
  string Expr;
  getline(cin, Expr);
  Eliminate_Space(Expr);
  doit(n, Expr);
  if (macro[n + 1].danger)
    puts("Suspicious");
  else
    puts("OK");
  return 0;
}
