#include <bits/stdc++.h>
using namespace std;
char s2[2000];
int T;
string s1, t;
map<string, int> M;
int work(int l, int r, bool flag) {
  int i, bracket = 0, left, right;
  while (s2[l] == ' ') l++;
  while (s2[r] == '\0' || s2[r] == ' ') r--;
  string t(s2 + l, s2 + r + 1);
  if (M.find(t) != M.end() && M[t] != 0) return M[t];
  for (i = l; i <= r; i++) {
    if (s2[i] == '(')
      bracket++;
    else if (s2[i] == ')')
      bracket--;
    if (!bracket)
      if (s2[i] == '+' || s2[i] == '-') {
        left = work(l, i - 1, true);
        right = work(i + 1, r, true);
        if (right == -1 || left == -1) return -1;
        if (right == 1 && s2[i] == '-') return -1;
        if (flag && left != 1 && right != 1) return 0;
        return 1;
      }
  }
  for (i = l; i <= r; i++) {
    if (s2[i] == '(')
      bracket++;
    else if (s2[i] == ')')
      bracket--;
    if (!bracket)
      if (s2[i] == '*' || s2[i] == '/') {
        left = work(l, i - 1, true);
        right = work(i + 1, r, true);
        if (left == 1 || right == 1) return -1;
        if (left == -1 || right == -1) return -1;
        if (s2[i] == '/' && right == 2) return -1;
        if (flag && left == 0 && right == 0) return 0;
        return 2;
      }
  }
  if (s2[l] == '(' && s2[r] == ')') {
    if (work(l + 1, r - 1, true) == -1) return -1;
    return 0;
  }
  return 0;
}
int main() {
  scanf("%d", &T);
  getchar();
  while (T--) {
    scanf("\n#%*s");
    cin >> s1;
    getchar();
    cin.getline(s2, sizeof(s2));
    M[s1] = work(0, strlen(s2) - 1, false);
  }
  cin.getline(s2, sizeof(s2));
  if (work(0, strlen(s2), false) == -1)
    printf("Suspicious");
  else
    printf("OK");
}
