#include <bits/stdc++.h>
using namespace std;
template <class T>
void chmax(T &x, T y) {
  x = x > y ? x : y;
}
template <class T>
void chmin(T &x, T y) {
  x = x < y ? x : y;
}
const int inf = 1000000000;
const int mod = 1000000007;
int n;
int res[105];
char buff[105];
char expr[105];
map<string, int> val;
int calc(int r1, int r2, char op) {
  if (r1 == 3 || r2 == 3) return 3;
  if (op == '+') return 2;
  if (op == '-') {
    if (r2 > 1) return 3;
    return 2;
  }
  if (op == '*') {
    if (r1 > 1 || r2 > 1) return 3;
    return 1;
  }
  if (op == '/') {
    if (r1 > 1 || r2) return 3;
    return 1;
  }
}
int dfs(int l, int r) {
  for (int i = r - 1, w = 0; i > l; i--) {
    w += expr[i] == '(';
    w -= expr[i] == ')';
    if (!w && (expr[i] == '+' || expr[i] == '-')) {
      int retl = dfs(l, i);
      int retr = dfs(i + 1, r);
      return calc(retl, retr, expr[i]);
    }
  }
  for (int i = r - 1, w = 0; i > l; i--) {
    w += expr[i] == '(';
    w -= expr[i] == ')';
    if (!w && (expr[i] == '*' || expr[i] == '/')) {
      int retl = dfs(l, i);
      int retr = dfs(i + 1, r);
      return calc(retl, retr, expr[i]);
    }
  }
  if (expr[l] == '(') {
    int ret = dfs(l + 1, r - 1);
    if (ret == 3) return 3;
    return 0;
  }
  string name(expr + l, expr + r);
  if (val.count(name)) return val[name];
  return 0;
}
int get() {
  int len = 0;
  for (int i = 0; i < strlen(buff); i++) {
    if (buff[i] == ' ') continue;
    expr[len++] = buff[i];
  }
  expr[len] = 0;
  return dfs(0, len);
}
int main() {
  scanf("%d", &n);
  getchar();
  for (int i = 0; i <= n; i++) {
    string str;
    if (i < n) {
      cin >> str;
      if (str == "#") cin >> str;
      cin >> str;
    }
    gets(buff);
    res[i] = get();
    if (i < n) val[str] = res[i];
  }
  puts(res[n] == 3 ? "Suspicious" : "OK");
  return 0;
}
