def jg(pwd): count=[0,0,0,0,0,0] #为了方便,我把所有条件初始值全部写在一个列表里 if len(pwd)>8: #判断第一条要求 count[0]=1 for i in pwd: #这一步主要判断第二条要求 if i.isdigit(): count[1]=1 elif i.isupper(): count[2]=1 elif i.islower(): count[3]=1 else: count[4]=1 for i in range(len(pwd)-2): #判断是否有长度大于2的重复子串,-2是因为3个一组的话只用循环n-2次就可以,本来是有4、5、6重复子串的可能的,但那种条件下3个也必然重复,故而只判断最小可能3 a=pwd[i:i+3] if a in pwd[i+3:]: count[5]=0 break else: count[5]=1 if sum(count[1:5])>=3 and count[0]==1 and count[5]==1: #最后三个条件并列判断 print("OK") else: print("NG") if __name__=="__main__": while True: try: jg(input()) except: break