#include <bits/stdc++.h>
using namespace std;
map<string, int> State;
int n, m;
string tmp, name, value;
void preprocess(string& s) {
  m = 0;
  int l = s.length();
  for (int i = 0; i < l; i++)
    if (s[i] != ' ') s[m++] = s[i];
}
int dp(int l, int r) {
  int t = 0;
  int pos = -1;
  for (int i = r; i >= l; i--) {
    if (value[i] == ')')
      t++;
    else if (value[i] == '(')
      t--;
    else if ((value[i] == '+' || value[i] == '-') && !t) {
      pos = i;
      break;
    }
  }
  if (pos == -1) {
    t = 0;
    for (int i = r; i >= l; i--) {
      if (value[i] == ')')
        t++;
      else if (value[i] == '(')
        t--;
      else if ((value[i] == '*' || value[i] == '/') && !t) {
        pos = i;
        break;
      }
    }
  }
  if (pos != -1) {
    int s1 = dp(l, pos - 1);
    if (s1 == 3) return 3;
    int s2 = dp(pos + 1, r);
    if (s2 == 3) return 3;
    if (value[pos] == '+')
      return 1;
    else if (value[pos] == '-')
      return s2 == 1 ? 3 : 1;
    else if (value[pos] == '*') {
      if (s1 == 1 || s2 == 1) return 3;
      return 2;
    } else {
      if (s1 == 1 || s2 == 1 || s2 == 2) return 3;
      return 2;
    }
  } else if (value[l] == '(')
    return dp(l + 1, r - 1) == 3 ? 3 : 0;
  string sub = value.substr(l, r - l + 1);
  return State.count(sub) ? State[sub] : 0;
}
int main() {
  scanf("%d", &n);
  while (n--) {
    cin >> tmp;
    if (tmp.length() == 1) cin >> tmp;
    cin >> name;
    getline(cin, value);
    preprocess(value);
    State[name] = dp(0, m - 1);
  }
  getline(cin, value);
  preprocess(value);
  int ans = dp(0, m - 1);
  printf("%s\n", ans == 3 ? "Suspicious" : "OK");
  return 0;
}
