#include #include #include #include #include using namespace std; char s[105]; ifstream f("collar.in"); #define cin f int main() { while (cin.getline(s, 105)) { int n = strlen(s); int var = 0, br = 0, ir = 0; bool ok = true; for (int i = 0; i < n; i++) { if (('a' <= s[i] && s[i] <= 'z') || ('0' <= s[i] && s[i] <= '9') || s[i] == '+' || s[i] == '-' || s[i] == '[' || s[i] == ']' || s[i] == 'B' || s[i] == 'D' || s[i] == 'I' || s[i] == 'P' || s[i] == 'S' || s[i] == 'X') { continue; } else { ok = false; break; } } if (ok == false) { cout << "ERROR\n"; continue; } if (s[0] == '+' || s[0] == '-' || s[n - 1] == '+' || s[n - 1] == '-') { cout << "ERROR\n"; continue; } for (int i = 0; i < n; i++) { if (s[i] == '[' && (s[i + 1] == '+' || s[i + 1] == '-')) { ok = false; break; } if (s[i] == ']' && (s[i - 1] == '+' || s[i - 1] == '-')) { ok = false; break; } } if (ok == false) { cout << "ERROR\n"; continue; } for (int i = 0; i < n; i++) { if (isupper(s[i])) { s[i] += 32; } } for (int i = 0; i < n - 1; i++) { if ((s[i] == 'b' && s[i + 1] == 'x') || (s[i] == 'b' && s[i + 1] == 'p')) { if (br == 0) { br = 1; } else { ok = false; break; } } else if ((s[i] == 's' && s[i + 1] == 'i') || (s[i] == 'd' && s[i + 1] == 'i')) { if (ir == 0) { ir = 1; } else { ok = false; break; } } else if (i == 0 && islower(s[i])) { if (var == 0) { var = 1; } else { ok = false; break; } } else if (islower(s[i]) && !((s[i - 1] == 's' && s[i] == 'i') || (s[i - 1] == 'd' && s[i] == 'i')) && !(s[i - 1] == 'b' && s[i] == 'x') || (s[i - 1] == 'b' && s[i] == 'p')) { if (var == 0) { var = 1; } else { ok = false; break; } } } if (islower(s[n - 1]) && !((s[n - 2] == 's' && s[n - 1] == 'i') || (s[n - 2] == 'd' && s[n - 1] == 'i')) && !(s[n - 1] == 'b' && s[n - 1] == 'x') || (s[n - 2] == 'b' && s[n - 1] == 'p')) { if (var == 0) { var = 1; } else { ok = false; } } if (ok == false) { cout << "ERROR\n"; continue; } int ssm = 0; for (int i = 0; i < n; i++) { if (s[i] == '[') { ssm++; } else if (s[i] == ']') { ssm--; } if (ssm < 0) { ok = false; break; } } if (ssm > 0 || ok == false) { cout << "ERROR\n"; continue; } for (int i = 0; i < n - 1; i++) { if (s[i] == '[' && s[i + 1] == ']') { ok = false; break; } } if (ok == false) { cout << "ERROR\n"; continue; } if (n < 3) { cout << "OK\n"; continue; } if ((s[0] == 'b' && (s[1] == 'x' || s[1] == 'p')) || ((s[0] == 's' || s[0] == 'd') && s[1] == 'i')) { if (s[2] != '+' && s[2] != '-') { ok = false; } } if ((s[n - 2] == 'b' && (s[n - 1] == 'x' || s[n - 1] == 'p')) || ((s[n - 2] == 's' || s[n - 2] == 'd') && s[n - 1] == 'i')) { if (s[n - 3] != '+' && s[n - 3] != '-') { ok = false; } } if (ok == false) { cout << "ERROR\n"; continue; } for (int i = 1; i < n - 2; i++) { if ((s[i] == 'b' && (s[i + 1] == 'x' || s[i + 1] == 'p')) || ((s[i] == 's' || s[i] == 'd') && s[i + 1] == 'i')) { if (s[i + 2] != '+' && s[i + 2] != '-') { ok = false; } if (s[i - 1] != '+' && s[i - 1] != '-') { ok = false; } } } if (ok == false) { cout << "ERROR\n"; continue; } cout << "OK\n"; } return 0; }