import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String key = in.next();
int count = 0;
int length = key.length();
if (length <= 4)
count += 5;
else if (length <= 7)
count += 10;
else
count += 25;
char[] chars = key.toCharArray();
int letter = getAZ(chars);
int number = getNumber(chars);
int symbol = getSymbol(chars);
int reward = getReward(letter, number, symbol);
count += letter + number + symbol + reward;
String result = getResult(count);
System.out.println(result);
}
}
private static String getResult(int count) {
if (count >= 90) {
return "VERY_SECURE";
}
if (count >= 80) {
return "SECURE";
}
if (count >= 70) {
return "VERY_STRONG";
}
if (count >= 60) {
return "STRONG";
}
if (count >= 50) {
return "AVERAGE";
}
if (count >= 25) {
return "WEAK";
}
return "VERY_WEAK";
}
private static int getReward(int letter, int number, int symbol) {
if (letter == 20 && number >= 10 && symbol >= 10) {
return 5;
}
if (letter >= 10 && number >= 10 && symbol >= 10) {
return 3;
}
if (letter >= 10 && number >= 10) {
return 2;
}
return 0;
}
public static int getAZ(char[] chars) {
boolean[] b = new boolean[2];
for (int i = 0; i < chars.length; i++) {
if (Character.isLowerCase(chars[i])) {
b[0] = true;
continue;
}
if (Character.isUpperCase(chars[i])) {
b[1] = true;
}
}
if (b[0] && b[1]) {
return 20;
}
if (b[0] || b[1]) {
return 10;
}
return 0;
}
public static int getNumber(char[] chars) {
boolean b = false;
int count = 0;
for (int i = 0; i < chars.length; i++) {
if (Character.isDigit(chars[i])) {
b = true;
count++;
}
}
if (b && count > 1) {
return 20;
}
if (count == 1) {
return 10;
}
return 0;
}
public static int getSymbol(char[] chars) {
int count = 0;
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
if (!Character.isLetterOrDigit(c)) {
count++;
}
}
if (count > 1) {
return 25;
}
if (count == 1) {
return 10;
}
return 0;
}
}