#include <bits/stdc++.h>

using namespace std;

// 检查是否满足规则 2
bool myFunc1(const string &str)
{
    int count = 0;
    bool flag[4] = { 0 };
    for (auto ch : str)
    {
        if (!flag[0] && ch >= '0' && ch <= '9')
        {
            ++count;
            flag[0] = true;
        }
        else if (!flag[1] && ch >= 'a' && ch <= 'z')
        {
            ++count;
            flag[1] = true;
        }
        else if (!flag[2] && ch >= 'A' && ch <= 'Z')
        {
            ++count;
            flag[2] = true;
        }
        else if (!flag[3])
        {
            ++count;
            flag[3] = true;
        }
        if (count >= 3)
            return true;
    }
    return false;
}

// 检查是否满足规则 3
bool myFunc2(const string &str)
{
    for (int i = 0; i < str.size() - 3; ++i)
    {
        int count = 0, startPos = 0;
        string tmp(str.begin() + i, str.begin() + i + 3);
        while ((startPos = str.find(tmp, startPos)) != str.npos)
        {
            ++count;
            ++startPos;
            if (count >= 2) return false;
        }
    }
    return true;
}

int main()
{
    string str;
    while (getline(cin, str))
    {
        if (str.size() <= 8)
        {
            cout << "NG" << endl;
            continue;
        }

        if (!myFunc1(str))
        {
            cout << "NG" << endl;
            continue;
        }

        if (myFunc2(str)) cout << "OK" << endl;
        else cout << "NG" << endl;
    }
    return 0;
}