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