#include <iostream>
#include <fstream>
#include <cctype>
#include <cstring>
using namespace std;

ifstream fin("in.txt");
ofstream fout("out.txt");

char upc(char c){
    if(c>='a'&&c<='z') c+='A'-'a';
    return c;
}


char s[150];
int ind;
int was_index;
int was_base;
int was_variable;

void expr(int startop){
    int got_op=0;
    int got_token=0;

    if(startop>0){
        while(s[ind]=='+'||s[ind]=='-'){ ++ind; got_op=1; }
    }
    if(startop==2){ if(!got_op && s[ind]!='[') return;  else{ expr(0); return; } }

    if(upc(s[ind]) == 'B' && (upc(s[ind+1])=='X'||upc(s[ind+1])=='P') ){
        if(was_base) return;
        else{
            was_base=1;
            ind+=2;
            got_token=1;
        }
    }
    else if( (upc(s[ind]) == 'S' || upc(s[ind])=='D') && upc(s[ind+1])=='I'){
        if(was_index) return;
        else{
            was_index=1;
            ind+=2;
            got_token=1;
        }
    }
    else if(isdigit(s[ind])){
        while(isdigit(s[ind])) ++ind;
        got_token=1;
    }
    else if(s[ind]>='a'&&s[ind]<='z'){
        if(was_variable) return;
        was_variable=1;
        ++ind;
        got_token=1;

    }
    else if(s[ind]=='['){
        ++ind;
        expr(0);
        if(ind==0 || s[ind]!=']'){ind=0; return;}
        got_token=1;
        ind++;
    }
    else {return;}

    if(!got_token){return;}
    else{
        expr(2);
    }
}



int main()
{
    while(fin.getline(s,150) && strlen(s)>0){
        ind=was_index=was_base=was_variable=0;
        expr(0);
        if(s[ind]) fout<<"ERROR\n";
        else fout<<"OK\n";
    }
}