#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;
}