#include <bits/stdc++.h>
using namespace std;
map<string, int> mp;
string s;
char fin[1005];
int res[1005];
char store[105][2][1005];
int n;
void pre(string s, int num) {
  int l = s.length(), l0 = 0, l1 = 0, i = 0;
  while (++i) {
    if (s[i] == 'd') {
      i += 6;
      break;
    }
  }
  while (s[i] == ' ') {
    i++;
  }
  for (i; i < l; i++) {
    if (s[i] == ' ') {
      store[num][0][l0++] = '\0';
      break;
    }
    store[num][0][l0++] = s[i];
  }
  while (s[i] == ' ') {
    i++;
  }
  for (i; i < l; i++) {
    if (s[i] != ' ') {
      store[num][1][l1++] = s[i];
    }
  }
  store[num][1][l1++] = '\0';
}
int work(char* tmp, int l, int r) {
  int lastl = 0, op = 0;
  for (int i = r; i >= l; i--) {
    if (tmp[i] == '(') {
      op--;
    } else if (tmp[i] == ')') {
      op++;
    } else if (!op) {
      if ((tmp[i] == '*' || tmp[i] == '/') && !lastl) {
        lastl = i;
      } else if (tmp[i] == '+') {
        int x = work(tmp, l, i - 1), y = work(tmp, i + 1, r);
        if (x == 2 || y == 2) {
          return 2;
        }
        return 3;
      } else if (tmp[i] == '-') {
        int x = work(tmp, l, i - 1), y = work(tmp, i + 1, r);
        if (x == 2 || y == 2 || y == 3) {
          return 2;
        }
        return 3;
      }
    }
  }
  if (lastl && tmp[lastl] == '*') {
    int i = lastl;
    int x = work(tmp, l, i - 1), y = work(tmp, i + 1, r);
    if (x == 2 || y == 2 || y == 3 || x == 3) {
      return 2;
    }
    return 4;
  } else if (lastl && tmp[lastl] == '/') {
    int i = lastl;
    int x = work(tmp, l, i - 1), y = work(tmp, i + 1, r);
    if (x == 2 || y == 2 || y == 3 || x == 3 || y == 4) {
      return 2;
    }
    return 4;
  } else if (tmp[l] == '(' && tmp[r] == ')') {
    if (work(tmp, l + 1, r - 1) == 2) {
      return 2;
    }
    return 1;
  } else {
    string x;
    for (int i = l; i <= r; i++) {
      x += tmp[i];
    }
    if (mp[x] == 0) {
      return 1;
    } else {
      if (res[mp[x]] != 0) {
        return res[mp[x]];
      } else {
        res[mp[x]] = work(store[mp[x]][1], 0, strlen(store[mp[x]][1]) - 1);
        return res[mp[x]];
      }
    }
  }
}
int main() {
  scanf("%d", &n);
  getline(cin, s);
  for (int i = 1; i <= n; i++) {
    getline(cin, s);
    pre(s, i);
    mp[store[i][0]] = i;
  }
  getline(cin, s);
  int l = s.length(), st = 0;
  for (int i = 0; i < l; i++) {
    if (s[i] != ' ') {
      fin[st++] = s[i];
    }
  }
  fin[st++] = '\0';
  if (work(fin, 0, strlen(fin) - 1) == 2) {
    printf("Suspicious\n");
  } else {
    printf("OK\n");
  }
  return 0;
}
