#include <cstring>
#include <iostream>
#include <fstream>
#include <vector>
#include <deque>
using namespace std;

char s[105];

ifstream f("collar.in");

int main()
{
    while (cin.getline(s, 105)) {
        int n = strlen(s);

        int var = 0, br = 0, ir = 0;

        bool ok = true;
        for (int i = 0; i < n; i++) {
            if (('a' <= s[i] && s[i] <= 'z') || ('0' <= s[i] && s[i] <= '9') ||
                s[i] == '+' || s[i] == '-' || s[i] == '[' || s[i] == ']' ||
                s[i] == 'B' || s[i] == 'D' || s[i] == 'I' || s[i] == 'P' || s[i] == 'S' ||
                s[i] == 'X') {
                    continue;
            } else {
                ok = false;
                break;
            }
        }

        if (ok == false) {
            cout << "ERROR\n";
            continue;
        }

        if (s[0] == '+' || s[0] == '-' || s[n - 1] == '+' || s[n - 1] == '-') {
            cout << "ERROR\n";
            continue;
        }
        for (int i = 0; i < n; i++) {
            if (s[i] == '[' && (s[i + 1] == '+' || s[i + 1] == '-')) {
                ok = false;
                break;
            }
            if (s[i] == ']' && (s[i - 1] == '+' || s[i - 1] == '-')) {
                ok = false;
                break;
            }
        }
        if (ok == false) {
            cout << "ERROR\n";
            continue;
        }

        for (int i = 0; i < n; i++) {
            if (isupper(s[i])) {
                s[i] += 32;
            }
        }
        for (int i = 0; i < n - 1; i++) {
            if ((s[i] == 'b' && s[i + 1] == 'x') ||
                (s[i] == 'b' && s[i + 1] == 'p')) {
                    if (br == 0) {
                        br = 1;
                    } else {
                        ok = false;
                        break;
                    }
            } else if ((s[i] == 's' && s[i + 1] == 'i') ||
                (s[i] == 'd' && s[i + 1] == 'i')) {
                    if (ir == 0) {
                        ir = 1;
                    } else {
                        ok = false;
                        break;
                    }
            } else if (i == 0 && islower(s[i])) {
                if (var == 0) {
                    var = 1;
                } else {
                    ok = false;
                    break;
                }
            } else if (islower(s[i]) && !((s[i - 1] == 's' && s[i] == 'i') ||
                (s[i - 1] == 'd' && s[i] == 'i')) && !(s[i - 1] == 'b' && s[i] == 'x') ||
                (s[i - 1] == 'b' && s[i] == 'p')) {
                    if (var == 0) {
                        var = 1;
                    } else {
                        ok = false;
                        break;
                    }
                }
        }
        if (ok == false) {
            cout << "ERROR\n";
            continue;
        }

        cout << "OK\n";
    }


    return 0;
}