密码要求:1.长度超过8位;2.包括大小写字母.数字.其它符号,以上四种至少三种;3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行) 数据范围:输入的字符串长度满足 1 \le n \le 100 \1≤n≤100 输入描述:一组字符串。 输出描述:如果符合要求输出:OK,否则输出NG 输入: 021Abc9000 021Abc9Abc1 021ABC9000 021$bc9000 输出: OK NG NG OK

# 1/whileTrue,inputstr-def
# 2/len-return 
# 3/az-AZ-09,其他符号,cnt
# 4/大于2个公共子串,每次取3个从i开始取3个,i+3=len则结束
def exam(instr):
    ins = instr
    # print(ins)
    num = [str(i) for i in range(10)]
    low = [chr(i) for i in range(97,123)]
    big = [chr(i).upper() for i in range(97,123)]
    nbl = num + low + big
    # print(nbl)
    # 长度小于等于8则直接NG
    if len(ins) <= 8:
        return 'NG'
    # 包含大小写即数字,则set有1个类型的即可,和low-big-num进行求集合不等于时则统计+1
    s = set(ins)
    cnt = 0
    if len(s - set(num)) != len(s):
        # print(s - set(num))
        cnt += 1
    if len(s - set(low)) != len(s):
        cnt += 1
    if len(s - set(big)) != len(s):
        cnt += 1
    # print(s - set(nbl))
    # 021$bc9000 剩余 $ 符号 长度不为0则cnt+1
    if len(s - set(nbl)) != 0:
        cnt += 1
    #for i in s:
    #    if i not in nbl:
    #        cnt += 1
    #        # print(i,'===')
    #        break 
    # print(cnt)
    if cnt < 3:
        return 'NG'
    # print('okk')
    three = []
    for i in range(len(ins)):
        # print(ins[i:i+3])
        # 0CD-NG 取3个字符后直接分裂求长度,循环到倒数第三位时停止循环
        # if len(ins) - 3 >= i:
        if len(ins) - 3 >= i and len(ins.split(ins[i:i+3])) >= 3:
            # three.append(ins[i:i+3])
            return 'NG'
        else:
            # if不存在时候,则继续执行下一条
            continue
            # 每次取至少大于2即为3个字符来判断,4个字符包含3个,没必要判断4个
            # 公共子串看样例要求是连续的,才有重复2遍的说法
            # 则取最后3个字符作为连续子串时候,即i=8时就break,if到7执行完毕后结束
            # break
    # print(three)
    # ['021', '21A', '1Ab', 'Abc', 'bc9', 'c90', '900', '000']
    # ['021', '21A', '1Ab', 'Abc', 'bc9', 'c9A', '9Ab', 'Abc', 'bc1']
    #for i in three:
    #    # 对每个子串,分裂出超过2份,则包含重复子串
    #    if len(ins.split(i)) > 2:
    #        return 'NG'
    return 'OK'
    
while True:
    try:
        instr = input().strip()
        res = exam(instr=instr)
        print(res)
    except:
        break