#include <bits/stdc++.h>
using namespace std;
int n;
map<string, int> f, f2;
const bool camp[7][7] = {{1, 1, 0, 0, 0, 1, 1}, {1, 1, 0, 0, 0, 1, 1},
                         {1, 1, 1, 1, 0, 1, 1}, {1, 1, 1, 1, 0, 1, 1},
                         {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0},
                         {0, 0, 0, 0, 0, 0, 0}};
char st[210], str[101][210];
int idx(char c) {
  switch (c) {
    case '+':
      return 0;
    case '-':
      return 1;
    case '*':
      return 2;
    case '/':
      return 3;
    case '(':
      return 4;
    case ')':
      return 5;
    case '\0':
      return 6;
  }
}
void GG() {
  printf("Suspicious\n");
  exit(0);
}
void oper(stack<char> &s1, stack<int> &s2) {
  int a = s2.top();
  s2.pop();
  int b = s2.top();
  s2.pop();
  char op = s1.top();
  s1.pop();
  switch (op) {
    case '+':
      s2.push(2);
      break;
    case '-':
      if (a == 2) GG();
      s2.push(2);
      break;
    case '*':
      if (a == 2 || b == 2) GG();
      s2.push(3);
      break;
    case '/':
      if (a != 1 || b == 2) GG();
      s2.push(3);
      break;
  }
}
int Build(char st[]) {
  stack<char> s1;
  stack<int> s2;
  int pos = 0;
  while (st[pos] != '\0') {
    if ((st[pos] >= 'a' && st[pos] <= 'z') ||
        (st[pos] >= '0' && st[pos] <= '9') ||
        (st[pos] >= 'A' && st[pos] <= 'Z')) {
      string now = "";
      while ((st[pos] >= 'a' && st[pos] <= 'z') ||
             (st[pos] >= '0' && st[pos] <= '9') ||
             (st[pos] >= 'A' && st[pos] <= 'Z'))
        now += st[pos++];
      --pos;
      if (!f2[now]) {
        if (f[now])
          f2[now] = Build(str[f[now]]);
        else
          f2[now] = 1;
      }
      s2.push(f2[now]);
      while (s1.size() && camp[idx(s1.top())][idx(st[pos + 1])]) oper(s1, s2);
    } else {
      s1.push(st[pos]);
      if (s1.top() == ')') {
        s1.pop();
        s1.pop();
        s2.pop();
        s2.push(1);
        while (s1.size() && camp[idx(s1.top())][idx(st[pos + 1])]) oper(s1, s2);
      }
    }
    ++pos;
  }
  return s2.top();
}
int main() {
  scanf("%d", &n);
  if (n == 0) {
    printf("OK\n");
    return 0;
  }
  for (int i = 1; i <= n; ++i) {
    string tem;
    char temp[200];
    while (cin >> tem && tem != "define\0" && tem != "#define\0")
      ;
    scanf("%s", temp);
    tem = temp;
    f[tem] = i;
    cin.getline(str[i], 201);
  }
  for (int i = 1; i <= n; ++i) {
    int k = 0, len = strlen(str[i]);
    for (int j = 0; j <= len; ++j)
      if (str[i][j] != ' ') str[i][k++] = str[i][j];
  }
  cin.getline(st, 201);
  int k = 0, len = strlen(st);
  for (int j = 0; j <= len; ++j)
    if (st[j] != ' ') st[k++] = st[j];
  Build(st);
  printf("OK\n");
}
