#include <ctype.h>
#include <stdio.h>
#include <string.h>

int main() {
    int i;
    char buf[100] = {0};


    //逐行循环读取密码
    while(scanf("%s", buf) != EOF) {
        int len = strlen(buf);
        int same_flag = 0;
        int upper_flag = 0;
        int lower_flag = 0;
        int digit_flag = 0;
        int special_flag = 0;
        
        //长度不小于8
        if(len < 8) {
            printf("NG\n");
            continue;
        }
        else {
            //判断是否满足大写字母,小写字母,数字,特殊字符至少三种
            for(i = 0; i<len; i++) {
                if(buf[i]>=33 && buf[i] <=126) {
                    if(buf[i]>='A' && buf[i]<='Z') {
                        upper_flag=1;
                    }
                    else if(buf[i]>='a' && buf[i]<='z') {
                        lower_flag=1;
                    }
                    else if(buf[i]>='0' && buf[i]<='9') {
                        digit_flag=1;
                    }
                    else {
                        special_flag=1;
                    }
                }
                else {
                    printf("NG\n");
                    break;
                }
            }
            int cnt = upper_flag+lower_flag+digit_flag+special_flag;
            if((cnt < 3)) {
                printf("NG\n");
            }
            else {//长度满足,类型满足,最后判断是否存在相同的子串
                for(i=0; (same_flag==0)&&(i<len-5); i++) {
                    for(int j=i+3; j<len-2; j++) {
                        if((buf[i]==buf[j]) && (buf[i+1]== buf[j+1]) && (buf[i+2]==buf[j+2])) {
                            same_flag = 1;
                        }
                    }
                }
                if(same_flag==1) {
                    printf("NG\n");
                }
                else{
                    printf("OK\n");
                }
            }
        }

    }

    return 0;
}