/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner sc
= new Scanner
(System.
in); boolean len_valid = (s.length() > 8) && (s.length() < 15);
boolean has_upper = false;
boolean has_lower = false;
boolean has_number = false;
boolean has_special = false;
String punctuations
= "!\"#$%&'()*+,-./:;<=>?@[]^_`{|}~\\"; for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
has_upper |= ((c >= 'A') && (c <= 'Z'));
has_lower |= ((c >= 'a') && (c <= 'z'));
has_number |= ((c >= '0') && (c <= '9'));
has_special |= punctuations.indexOf(c) != -1;
}
boolean valid = len_valid && has_upper && has_lower && has_number && has_special;
if (valid) {
System.
out.
println(s
+ " is a valid password"); }
else {
System.
out.
println(s
+ " is a invalid password"); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVNjYW5uZXIgc2MgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCVN0cmluZyBzID0gc2MubmV4dCgpOwoJCWJvb2xlYW4gbGVuX3ZhbGlkID0gKHMubGVuZ3RoKCkgPiA4KSAmJiAocy5sZW5ndGgoKSA8IDE1KTsKCQlib29sZWFuIGhhc191cHBlciA9IGZhbHNlOwoJCWJvb2xlYW4gaGFzX2xvd2VyID0gZmFsc2U7CgkJYm9vbGVhbiBoYXNfbnVtYmVyID0gZmFsc2U7CgkJYm9vbGVhbiBoYXNfc3BlY2lhbCA9IGZhbHNlOwoJCVN0cmluZyBwdW5jdHVhdGlvbnMgPSAiIVwiIyQlJicoKSorLC0uLzo7PD0+P0BbXV5fYHt8fX5cXCI7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspIHsKCQkJY2hhciBjID0gcy5jaGFyQXQoaSk7CgkJCWhhc191cHBlciB8PSAoKGMgPj0gJ0EnKSAmJiAoYyA8PSAnWicpKTsKCQkJaGFzX2xvd2VyIHw9ICgoYyA+PSAnYScpICYmIChjIDw9ICd6JykpOwoJCQloYXNfbnVtYmVyIHw9ICgoYyA+PSAnMCcpICYmIChjIDw9ICc5JykpOwoJCQloYXNfc3BlY2lhbCB8PSBwdW5jdHVhdGlvbnMuaW5kZXhPZihjKSAhPSAtMTsKCQl9CgkJYm9vbGVhbiB2YWxpZCA9IGxlbl92YWxpZCAmJiBoYXNfdXBwZXIgJiYgaGFzX2xvd2VyICYmIGhhc19udW1iZXIgJiYgaGFzX3NwZWNpYWw7CgkJaWYgKHZhbGlkKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihzICsgIiBpcyBhIHZhbGlkIHBhc3N3b3JkIik7CgkJfQoJCWVsc2UgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4ocyArICIgaXMgYSBpbnZhbGlkIHBhc3N3b3JkIik7CgkJfQoJfQp9