import java.util.Scanner;
public class Test57 {
/*
题目描述
密码要求:
1.长度超过8位
2.包括大小写字母.数字.其它符号,以上四种至少三种
3.不能有相同长度超2的子串重复
说明:长度超过2的子串
输入描述:
一组或多组长度超过2的子符串。每组占一行
输出描述:
如果符合要求输出:OK,否则输出NG
输入例子:
021Abc9000
021Abc9Abc1
021ABC9000
021$bc9000
输出例子:
OK
NG
NG
OK
*/
public static void main(String[] args) {
getRightOrNot();
}
public static void getRightOrNot(){
Scanner scn=new Scanner(System.in);
while(scn.hasNext()){
String str=scn.nextLine();
//System.out.println();
if(panDuan(str)){
System.out.println("OK");
}else {
System.out.println("NG");
}
}
}
public static boolean panDuan(String str){
int flagDaXie=0;
int flagXiaoXie=0;
int flagShuZi=0;
int flagQiTa=0;
int count=0;
if(str.length()<=8){
return false;
}
for (int i = 0; i < str.length(); i++) {
if(flagDaXie==0&&str.charAt(i)>='A'&&str.charAt(i)<='Z'){
flagDaXie++;
}
if(flagXiaoXie==0&&str.charAt(i)>='a'&&str.charAt(i)<='z'){
flagXiaoXie++;
}
if(flagShuZi==0&&str.charAt(i)>='0'&&str.charAt(i)<='9'){
flagShuZi++;
}
if(flagQiTa==0&&!(str.charAt(i)>='a'&&str.charAt(i)<='z')
&&!(str.charAt(i)>='A'&&str.charAt(i)<='Z')
&&!(str.charAt(i)>='0'&&str.charAt(i)<='9')){
flagQiTa++;
}
}
if(flagDaXie+flagXiaoXie+flagShuZi+flagQiTa<3){
return false;
}
for (int i = 0; i +2< str.length(); i++) {
if(str.substring(0, i).contains(str.substring(i,i+3))
||str.substring(i+3).contains(str.substring(i,i+3))){
return false;
}
}
return true;
}
}