#include <iostream> using namespace std; bool noDup(string pwd) { for (int i = 0; i <= pwd.size() - 6; i++) { for (int j = i + 3; j <= pwd.size() - 3; j++) { if (pwd.substr(i, 3) == pwd.substr(j, 3)) return false; } } return true; } // 0123 456789 (10) // 0000 000000 int main() { string pwd; while (cin >> pwd) { if (pwd.size() <= 8) { cout << "NG" << endl; continue; } bool cap = false, low = false, num = false, other = false; for (char c : pwd) { if (c >= '0' && c <= '9') num = true; else if (c >= 'A' && c <= 'Z') cap = true; else if (c >= 'a' && c <= 'z') low = true; else other = true; } if (cap + low + num + other < 3) { cout << "NG" << endl; continue; } if (noDup(pwd)) { cout << "OK" << endl; } else { cout << "NG" << endl; } } }