#include <bits/stdc++.h>
using namespace std;
const int MAXN = 110;
map<string, int> v;
int n;
char s[MAXN];
int cal(int l, int r) {
  int cnt = 0;
  for (int i = r; i >= l; i--) {
    if (s[i] == '(') cnt++;
    if (s[i] == ')') cnt--;
    if (!cnt && (s[i] == '+' || s[i] == '-')) {
      int fro = cal(l, i - 1), bes = cal(i + 1, r);
      if (fro == 1 || bes == 1 || s[i] == '-' && bes == 2) return 1;
      return 2;
    }
  }
  for (int i = r; i >= l; i--) {
    if (s[i] == '(') cnt++;
    if (s[i] == ')') cnt--;
    if (!cnt && (s[i] == '*' || s[i] == '/')) {
      int fro = cal(l, i - 1), bes = cal(i + 1, r);
      if (fro == 1 || bes == 1 || fro == 2 || bes == 2 ||
          s[i] == '/' && bes == 3)
        return 1;
      return 3;
    }
  }
  if (s[l] == '(') return cal(l + 1, r - 1) == 1 ? 1 : 0;
  string str = "";
  for (int i = l; i <= r; i++) str += s[i];
  return v[str];
}
int get() {
  int sta = 0, l = 0;
  char last = 0;
  memset(s, 0, sizeof(s));
  while ((s[l++] = getchar()) != '\n')
    if (s[--l] != ' ') l++;
  return cal(0, l - 2);
}
int main() {
  int cas = 1;
  while (cas--) {
    scanf("%d", &n);
    char t[MAXN];
    memset(s, 0, sizeof(s));
    memset(t, 0, sizeof(t));
    for (int i = 1; i <= n; i++) {
      while (scanf("%s", t)) {
        string now = t;
        if (now == "define") break;
        if (now == "#define") break;
      }
      scanf("%s", t);
      v[t] = get();
    }
    printf(get() == 1 ? "Suspicious\n" : "OK\n");
    v.clear();
  }
  return 0;
}
