/**
* 021Abc9Abc1
* 1.长度超过8位
* 2.包括大小写字母.数字.其它符号,以上四种至少三种
* 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
*/
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
validation(str);
}
private static void validation(String str) {
// 1.长度超过8位
if (str.length() <= 8) {
System.out.println("不合格");
return;
}
// 2.包括大小写字母.数字.其它符号,以上四种至少三种
int little = 0;
int max = 0;
int num = 0;
int other = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) <= 'z' && str.charAt(i) >= 'a') {
little = 1;
} else if (str.charAt(i) <= 'Z' && str.charAt(i) >= 'A') {
max = 1;
} else if (str.charAt(i) <= '9' && str.charAt(i) >= '0') {
num = 1;
} else {
other = 1;
}
}
if (little + max + num + other < 3) {
System.out.println("不合格");
return;
}
// 3.不能有长度大于2的包含公共元素的子串重复 (注:其他符号不含空格或换行)
boolean flag = getTwoLength(str, 0, 2);
if (!flag) {
System.out.println("不合格");
} else {
System.out.println("合格");
}
}
private static boolean getTwoLength(String str, int s, int e) {
if(e > str.length()){
return true;
}
if (!str.substring(e).contains(str.substring(s, e))) {
s = s + 1;
e = e + 1;
return getTwoLength(str, s, e);
} else {
return false;
}
}