#include<iostream>
#include<string>
using namespace std;

string s;
int i,p;
bool v1,v2,v3,ok;

bool litera(char ch)
{
	if ((('A'<=ch) && (ch<='Z')) || (('a'<=ch) && (ch<='z')))
		return true;
	else return false;
}

bool lower(char ch)
{
	if (('a'<=ch) && (ch<='z'))
		return true;
	else return false;
}

bool cifra(char ch)
{
	if (('0'<=ch) && (ch<='9'))
		return true;
	else return false;
}

bool corect(char ch)
{
	if (litera(ch) || (ch=='[') || (ch==']') || (ch=='+') || (ch=='-') || cifra(ch))
		return true;
	else return false;
}

int main()
{
	while (!cin.eof())
	{
		cin >> s;
		ok=true;
		v1=v2=v3=0;
		p=0;
		for (i=0;i<s.length();i++)
		{
			if (!corect(s[i]))
			{
				ok=false;
				break;
			}
			switch (s[i])
			{
			case 'B':
				{
					if ((s[i+1]!='X') && (s[i+1]!='P') && (s[i+1]!='x') && (s[i+1]!='p'))
					{
						ok=false;
						break;
					}
					if (v1==1)
					{
						ok=false;
						break;
					}
					v1=1;
					i++;
				}
			break;
			case 'b':
				{
					if (litera(s[i+1]))
					{
						if ((s[i+1]!='X') && (s[i+1]!='P') && (s[i+1]!='x') && (s[i+1]!='p'))
						{
							ok=false;
							break;
						}
						if (v1==1)
						{
							ok=false;
							break;
						}
						v1=1;
						i++;
					}
					else if (v3==1)
						{
							ok=false;
							break;
						}
					else v3=1;
				}
			break;
			case 'S':
				{
					if ((s[i+1]!='I') && (s[i+1]!='i'))
					{
						ok=false;
						break;
					}
					if (v2==1)
					{
						ok=false;
						break;
					}
					v2=1;
					i++;
				}
			break;
			case 's':
				{
					if (litera(s[i+1]))
					{
						if ((s[i+1]!='I') && (s[i+1]!='i'))
						{
							ok=false;
							break;
						}
						if (v2==1)
						{
							ok=false;
							break;
						}
						v2=1;
						i++;
					}
					else if (v3==1)
						{
							ok=false;
							break;
						}
					else v3=1;
				}
			break;
			case 'D':
				{
					if ((s[i+1]!='I') && (s[i+1]!='i'))
					{
						ok=false;
						break;
					}
					if (v2==1)
					{
						ok=false;
						break;
					}
					v2=1;
					i++;
				}
			break;
			case 'd':
				{
					if (litera(s[i+1]))
					{
						if ((s[i+1]!='I') && (s[i+1]!='i'))
						{
							ok=false;
							break;
						}
						if (v2==1)
						{
							ok=false;
							break;
						}
						v2=1;
						i++;
					}
					else if (v3==1)
						{
							ok=false;
							break;
						}
					else v3=1;
				}
			break;
			case '[':  
				p++;
			break;
			case ']':
				if (p==0)
				{
					ok=false;
					break;
				}
				else p--;
			break;
			case '+':break;	
			case '-':break;	
			default:
				{
					if (!cifra(s[i]))
					{
						if (v3==1)
						{
							ok=false;
							break;
						}
						else v3=1;
						if ((litera(s[i+1])) || (!lower(s[i])))
						{
							ok=false;
							break;
						}
					}
				}
			}
			if (!ok)
				break;
		}
		if ((ok) && (p==0) && (s[0]!='+') && (s[0]!='-'))
			cout << "OK\n";
		else cout << "ERROR\n";
	}
	return 0;
}