import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //获取所有的密码内容
        List<String> passwordList = new ArrayList<>();
        while (scanner.hasNextLine()) {
            String input = scanner.nextLine();
            if (input.equals("")) {
                break;
            }
            passwordList.add(input);
        }
        //判断密码是否合格
        for (int i = 0; i < passwordList.size(); i++) {
            if (isPasswordValid(passwordList.get(i))) {
                System.out.println("OK");
            } else {
                System.out.println("NG");
            };
        }
    }
    public static boolean isPasswordValid(String password) {
        // 检查长度不超过8位
        if (password == null || password.length() == 0 || password.length() < 8) {
            return false;
        }
        // 检查必须包含至少三种字符类型
        if (!containsAtLeastThreeTypes(password)) {
            return false;
        }
        // 检查不能有长度大于2的重复子串(不重叠)
        if (hasRepeatedSubstring(password)) {
            return false;
        }
        return true;
    }
    private static boolean containsAtLeastThreeTypes(String password) {
        int typeCount = 0;
        // 检查大写字母
        if (!password.equals(password.toLowerCase())) {
            typeCount++;
        }
        // 检查小写字母
        if (!password.equals(password.toUpperCase())) {
            typeCount++;
        }
        // 检查数字
        if (password.matches(".*\\d.*")) {
            typeCount++;
        }
        // 检查特殊字符(非字母数字)
        if (password.matches(".*[^a-zA-Z0-9].*")) {
            typeCount++;
        }
        return typeCount >= 3;
    }

    private static boolean hasRepeatedSubstring(String password) {
        // 检查所有可能长度大于2的子串
        for (int len = 3; len <= password.length() / 2; len++) {
            for (int i = 0; i <= password.length() - len; i++) {
                String substring = password.substring(i, i + len);
                // 确保找到的重复子串不重叠
                if (password.indexOf(substring, i + len) != -1) {
                    return true;
                }
            }
        }
        return false;
    }
}