#include #include #include #include using namespace std; const char maj[] = "BDIPSX"; const char minn[] = "bdipsx"; char A[102], B[102]; int ST[1002]; bool is_ok(char C) { if (C >= 'a' && C <= 'z') return true; if (C >= '0' && C <= '9') return true; if (C == '+' || C == '-' || C == '[' || C == ']') return true; for (int i = 0; maj[i] != 0; ++i) if (C == maj[i]) return true; return false; } bool is_ch(char C) { if (C >= 'a' && C <= 'z') return true; return false; } bool is_sign(char C) { return (C == '+' || C == '-'); } int main() { cin.sync_with_stdio(false); while (cin.getline(A, sizeof(A))) { if (A[0] == 0) break; bool ok = true; for (int i = 0; A[i] != 0; ++i) if (!is_ok(A[i])) { ok = false; break; } if (!ok) { cout << "ERROR\n"; continue; } for (int i = 0; A[i] != 0; ++i) for (int j = 0; maj[j] != 0; ++j) if (A[i] == maj[j]) { A[i] = minn[j]; break; } if (is_sign(A[0])) ok = false; for (int i = 0; A[i] != 0; ++i) if (A[i] == '[' && is_sign(A[i + 1])) ok = false; if (!ok) { cout << "ERROR\n"; continue; } ST[0] = 0; for (int i = 0; A[i] != 0; ++i) if (A[i] == ']') { --ST[0]; if (ST[0] < 0) { ok = false; break; } else { A[ST[ST[0] + 1]] = '+'; A[i] = '#'; } } else if (A[i] == '[') ST[++ST[0]] = i; if (!ok) { cout << "ERROR\n"; continue; } memcpy(B, A, sizeof(B)); int sz = 0; for (int i = 0; B[i] != 0; ++i) if (B[i] != '#') A[sz++] = B[i]; A[sz] = 0; int isBX = 0, isBP = 0, isSI = 0, isDI = 0; for (int i = 0; A[i] != 0; ++i) { if (A[i] == 'b' && A[i + 1] == 'x') ++isBX; else if (A[i] == 'b' && A[i + 1] == 'p') ++isBP; else if (A[i] == 's' && A[i + 1] == 'i') ++isSI; else if (A[i] == 'd' && A[i + 1] == 'i') ++isDI; else if (is_ch(A[i]) && is_ch(A[i + 1])) ok = false; } if (!ok) { cout << "ERROR\n"; continue; } if ((isBX && isBP) || (isSI && isDI)) { cout << "ERROR\n"; continue; } if (isBX > 1 || isBP > 1 || isSI > 1 || isDI > 1) { cout << "ERROR\n"; continue; } int vars = 0; for (int i = 0; A[i] != 0; ++i) if ((i == 0 || !is_ch(A[i - 1])) && is_ch(A[i]) && !is_ch(A[i + 1])) ++vars; if (vars > 1) { cout << "ERROR\n"; continue; } cout << "OK\n"; } }