#include <cctype> #include <iostream> #include <vector> #include <unordered_set> #include <string> using namespace std; bool consist_str(string& str) { int n = str.size(); for (int len = 3; len <= n / 2; len++) { for (int i = 0; i <= n - 2 * len; i++) { string sub1 = str.substr(i, len); for (int j = i + len; j <= n - len; j++) { if (str.substr(j, len) == sub1) { return false; } } } } return true; } bool include_all(string& str) { vector<int> mark(4); for (char& c : str) { if (islower(c)) mark[0] = 1; else if (isupper(c)) mark[1] = 1; else if (isdigit(c)) mark[2] = 1; else mark[3] = 1; } int num = 0; for (int& m : mark) { num += m; } return num > 2; } int main() { string str; while (getline(cin, str)) { if (str.size() > 8 && include_all(str) && consist_str(str)) { cout << "OK" << endl; } else { cout << "NG" << endl; } } return 0; } // 64 位输出请用 printf("%lld")