#include <cstring>
#include <cstring>
#include <iostream>
#include <algorithm>

using namespace std;

const char maj[] = "BDIPSX";
const char minn[] = "bdipsx";

char A[102], B[102];
int ST[1002];

bool is_ok(char C)
{
	if (C >= 'a' && C <= 'z') return true;
	if (C >= '0' && C <= '9') return true;
	if (C == '+' || C == '-' || C == '[' || C == ']') return true;
	
	for (int i = 0; maj[i] != 0; ++i)
		if (C == maj[i])
			return true;
	return false;
}
bool is_ch(char C)
{
	if (C >= 'a' && C <= 'z') return true;
	return false;
}
bool is_sign(char C)
{
	return (C == '+' || C == '-');
}

int main()
{
	cin.sync_with_stdio(false);
	
	while (cin >> A)
	{
		bool ok = true;
		for (int i = 0; A[i] != 0; ++i)
			if (!is_ok(A[i]))
			{
				ok = false;
				break;
			}
			
		if (!ok)
		{
			cout << "ERROR\n";
			continue;
		}
		
		for (int i = 0; A[i] != 0; ++i)
			for (int j = 0; maj[j] != 0; ++j)
				if (A[i] == maj[j])
				{
					A[i] = minn[j];
					break;
				}
		
		if (is_sign(A[0]))
			ok = false;
		for (int i = 0; A[i] != 0; ++i)
			if (A[i] == '[' && is_sign(A[i + 1]))
				ok = false;
		
		if (!ok)
		{
			cout << "ERROR\n";
			continue;
		}
		
		ST[0] = 0;
		for (int i = 0; A[i] != 0; ++i)
			if (A[i] == ']')
			{
				--ST[0];
				if (ST[0] < 0)
				{
					ok = false;
					break;
				}
				else
				{
					A[ST[ST[0] + 1]] = '+';
					A[i] = '#';
				}
			}
			else if (A[i] == '[')
				ST[++ST[0]] = i;
		
		if (!ok)
		{
			cout << "ERROR\n";
			continue;
		}
		
		memcpy(B, A, sizeof(B));
		
		int sz = 0;
		for (int i = 0; B[i] != 0; ++i)
			if (B[i] != '#')
				A[sz++] = B[i];
		A[sz] = 0;
		
		bool isBX = false, isBP = false, isSI = false, isDI = false;
		for (int i = 0; A[i] != 0; ++i)
		{
			if (A[i] == 'b' && A[i + 1] == 'x')
				isBX = true;
			if (A[i] == 'b' && A[i + 1] == 'p')
				isBP = true;
			if (A[i] == 's' && A[i + 1] == 'i')
				isSI = true;
			if (A[i] == 'd' && A[i + 1] == 'i')
				isDI = true;
		}
		
		if ((isBX && isBP) || (isSI && isDI))
		{
			cout << "ERROR\n";
			continue;
		}
		
		int vars = 0;
		for (int i = 0; A[i] != 0; ++i)
			if ((i == 0 || !is_ch(A[i - 1])) && is_ch(A[i]) && !is_ch(A[i + 1]))
				++vars;
		
		if (vars > 1)
		{
			cout << "ERROR\n";
			continue;
		}
		
		cout << "OK\n";
	}
}