import string
A=list(string.ascii_uppercase)
a=list(string.ascii_lowercase)
num=['0','1','2','3','4','5','6','7','8','9',]
lw=list(string.ascii_letters)+num
while True:
    try:
        q1,q2,q3,q4,Q5,Q7=0,0,0,0,0,2
        p=input().strip()
        n=len(p)
 #       print(p[41:43])
        for i in range(len(p)-2):
                for j in range(len(p)-2):
                    if p[i:i+3]==p[j:j+3]:#             
   #                     print(p[i:i+3])
                        Q7+=1#                         如果有重复项,计数+1,本身和本身重复,故一共有长度
                                       #                -2个原有重复项,+2为字符串长度,后文判断Q7<=字符串
        #                                                  长度则是没有重复项
 #       print(n)
  #      print(Q7)
        if n<=8:
            print('NG')
        else:
            p=list(set(p))
            for i in A:
                if i in p:
                    q1=1#                   判断是否存在大写字母
            for i in a:
                if i in p:
                    q2=1#                    判断是否存在小写字母
            for i in num:
                if i in p:
                    q3=1#                        判断是否存在数字
            for i in range(len(p)):
                if p[i] not in lw:
                    q4=1#                        判断是否存在其他字符
#            print(q1,q2,q3,q4)
            if (q1+q2+q3+q4)>=3:
                Q5=1#                         判断是否存在三种以上不同类型数据
            else:
                Q5=0
            if Q5==1 and Q7<=n:
                print('OK')#                    满足要求2和3,输出'OK'
            else:
                print('NG')
    except:
        break