#include <iostream> #include <map> using namespace std; int main(){ string str; while (cin>>str){ map<string,int> sub; bool flag = 1; int ch[4] = {0}; int n = str.size(); if (n>8){ for (int i = 0; i < n; ++i) { if (str[i]>='a'&&str[i]<='z') ch[0] = 1; else if (str[i]>='A'&&str[i]<='Z') ch[1] = 1; else if (str[i]>='0'&&str[i]<='9') ch[2] = 1; else ch[3] = 1; if (sub.find(str.substr(i,3)) != sub.end()){ // 不能有长度大于2的包含公共元素的子串重复 flag = false; } else{ sub[str.substr(i,3)] = 1; } } int count = 0; for (int j = 0; j < 4; ++j) { if (ch[j]) count++; } if (count<3){ // 不同字符数不足 flag = false; } } else{ // 长度不足 flag = false; } if (flag){ cout<<"OK"<<endl; } else{ cout<<"NG"<<endl; } } return 0; }