#include<cstdio>
#include<vector>
#include<cstring>
#include<cmath>
#include<queue>
#include<set>
#include<algorithm>
#include<ctime>
#include<cstdlib>
using namespace std;
int n1,n2,n3,n4,T,n,i,j,nr,a,b,ap[1009];
char sir[1009];
int main()
{
//freopen("input","r",stdin);
//freopen("output","w",stdout);
while(!feof(stdin))
{
    gets(sir+1);
    if(feof(stdin)) break;
    n=strlen(sir+1);
    for(i=1;i<=n;i++)
        ap[i]=0;
        n1=n2=n3=n4=0;
    for(i=1;i<n;i++)
    {
        if(sir[i]=='b'||sir[i]=='B')
        {
            if(sir[i+1]=='X'||sir[i+1]=='x') ap[i]=ap[i+1]=1,n1++;
            else
            if(sir[i+1]=='p'||sir[i+1]=='P') ap[i]=ap[i+1]=1,n2++;
        }
        else
        if(sir[i+1]=='i'||sir[i+1]=='I')
        {
            if(sir[i]=='s'||sir[i]=='S') ap[i]=ap[i+1]=1,n3++;
            else
            if(sir[i]=='D'||sir[i]=='d') ap[i]=ap[i+1]=1,n4++;
        }
    }
    for(i=1;i<=n;i++)
    if(ap[i]==0)
    {
        if(sir[i]>='0'&&sir[i]<='9') ;
        else
        if(sir[i]>='a'&&sir[i]<='z') ;
        else
        if(sir[i]=='['||sir[i]==']'||sir[i]=='+'||sir[i]=='-') ;
        else break;
    }
    if(i<=n)
    {
        printf("ERROR\n");
        continue;
    }
    if(n1>1||n2>1||n3>1||n4>1||n1*n2>0||n3*n4>0)
    {
        printf("ERROR\n");
        continue;
    }
    n1=0;
    for(i=1;i<=n;i++)
        if(ap[i]==0&&sir[i]>='a'&&sir[i]<='z') n1++;
    if(n1>1)
    {
        printf("ERROR\n");
        continue;
    }
    for(i=1;i<n;i++)
        if(sir[i]==']'&&sir[i+1]!='['&&sir[i+1]!='-'&&sir[i+1]!='+') break;
    if(i<n)
    {
        printf("ERROR\n");
        continue;
    }
    nr=0;
    for(i=1;i<=n;i++)
        if(sir[i]=='['||sir[i]==']')
        {
            if(sir[i]=='[') nr++;
            else nr--;
            if(nr<0) break;
        }
    if(i<=n||nr!=0)
    {
        printf("ERROR\n");
        continue;
    }
    printf("OK\n");
}
return 0;
}