#include #include #include #include #include #include #include #include #define LL long long #define pb push_back #define lm 10001 #define MOD 1000000007 using namespace std; int t; string l; int main() { //freopen("data.in","r",stdin); while(getline(cin,l)) { bool ok=true; replace(l.begin(),l.end(),'-','+'); t=l.find("bP"); if(t!=string::npos) { l.replace(t,t+1,"BP"); } t=l.find("bp"); if(t!=string::npos) { l.replace(t,t+1,"BP"); } t=l.find("Bp"); if(t!=string::npos) { l.replace(t,t+1,"BP"); } t=l.find("bX"); if(t!=string::npos) { l.replace(t,t+1,"BX"); } t=l.find("bx"); if(t!=string::npos) { l.replace(t,t+1,"BX"); } t=l.find("Bx"); if(t!=string::npos) { l.replace(t,t+1,"BX"); } t=l.find("sI"); if(t!=string::npos) { l.replace(t,t+1,"SI"); } t=l.find("si"); if(t!=string::npos) { l.replace(t,t+1,"SI"); } t=l.find("Si"); if(t!=string::npos) { l.replace(t,t+1,"SI"); } t=l.find("dI"); if(t!=string::npos) { l.replace(t,t+1,"DI"); } t=l.find("di"); if(t!=string::npos) { l.replace(t,t+1,"DI"); } t=l.find("Di"); if(t!=string::npos) { l.replace(t,t+1,"DI"); } t=l.find("BP"); if(t!=string::npos ) { l.replace(t,t+1,"55"); if(l.find("BX")!=string::npos ) { cout<<"ERROR\n"; ok=false; } } t=l.find("BX"); if(t!=string::npos ) l.replace(t,t+1,"55"); if(ok) { t=l.find("SI"); if(t!=string::npos ) { l.replace(t,t+1,"55"); if(l.find("DI")!=string::npos) { cout<<"ERROR\n"; ok=false; } } t=l.find("DI"); if(t!=string::npos ) l.replace(t,t+1,"55"); } if (ok) { if(l.find("+]")!=string::npos) { cout<<"ERROR\n"; ok=false; } } if (ok) { if(l.find("[+")!=string::npos) { cout<<"ERROR\n"; ok=false; } } if (ok) for(int i=0; i='0' && l[i]<='9') continue; if(l[i]>='a' && l[i]<='z') continue; cout<<"ERROR\n"; ok=false; break; } if(ok) cout<<"OK\n"; } return 0; }