#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define vint vector::iterator #define vintp vector >::iterator #define ll long long #define maxn 251 #define inf (1<<30) using namespace std; ifstream fin ("A.in"); ofstream fout("A.out"); char s[1001]; int n; int main() { while (1) { s[1] = '`'; fgets (s+1,1024,stdin); if (s[1] == '`') break; n = strlen (s+1); if (s[1] == 'I') break; int n = strlen (s+1); bool ok = 1; if (s[1] == '+' || s[1] == '-' || s[n-1] == '+' || s[n-1] == '-') { ok = 0; } int cnt = 0; for (int i=1; i<=n; ++i) { if (s[i] == '[') { ++cnt; s[i] = '+'; if (s[i+1] == '+' || s[i+1] == '-') ok = 0; } else if (s[i] == ']') { if (s[i-1] == '+' || s[i-1] == '-') ok = 0; if (cnt) --cnt; else { ok = 0; } } } if (cnt) ok = 0; int b=0,ss=0,var=0; for (int i=1; i<=n; ++i) { if (s[i] == 'B') { if (s[i+1] == 'P' || s[i+1] == 'X' || s[i+1] == 'p' || s[i+1] == 'x') { ++b; } else { ok = 0; } } else if (s[i] == 'I') { if (s[i-1] == 'D' || s[i-1] == 'S' || s[i-1] == 'd' || s[i-1] == 's') { ++ss; } else ok = 0; } else if ('a' <= s[i] && s[i] <= 'z') { if (s[i] == 'b') { if (s[i+1] == 'X' || s[i+1] == 'P' || s[i+1] == 'p' || s[i+1] == 'x') ++b; else ++var; } else if (s[i] == 'x') { if (s[i-1] != 'B' && s[i-1] != 'b') ++var; } else if (s[i] == 'p') { if (s[i-1] != 'B' && s[i-1] != 'b') ++var; } else if (s[i] == 'i') { if (s[i-1] == 's' || s[i-1] == 'S' || s[i-1] == 'd' || s[i-1] == 'D') ++ss; else ++var; } else if (s[i] == 'd') { if (s[i+1] != 'i' && s[i+1] != 'I') ++var; } else if (s[i] == 's') { if (s[i+1] != 'i' && s[i-1] != 'I') ++var; } else ++ var; } else if (s[i] == 'X' || s[i] == 'S' || s[i] == 'P' || s[i] == 'D') continue; else if ( s[i] == '+' || s[i] == '-' || s[i] == ']' || s[i] == '\n') continue; else if ('0' <= s[i] && s[i] <= '9') { if (('A' <= s[i-1] && s[i-1] <= 'Z') || ('a' <= s[i-1] && s[i-1] <= 'z')) ok = 0; else if (('A' <= s[i+1] && s[i+1] <= 'Z') || ('a' <= s[i+1] && s[i+1] <= 'z')) ok = 0; } else ok = 0; } if (var > 1 || b > 1 || ss > 1) ok = 0; if (ok) cout<<"OK"; else cout<<"ERROR"; cout<<"\n"; } }