#include <iostream>
using namespace std;
bool isspecial (char c) {
return (c == '!' || c == '"' || c == '#' ||
c == '$' || c == '%' || c == '&' ||
c == '+' || c == '(' || c == ')' ||
c == '*' || c == '\'');
}
int main() {
string password;
cin >> password;
bool test_lc, test_uc, test_dig, test_sp,
test_len = password.length() >= 8;
test_lc = test_uc = test_dig = false;
for (int i = 0; i < password.length(); i++) {
if (!test_lc) test_lc = islower(password[i]);
if (!test_uc) test_uc = isupper(password[i]);
if (!test_dig) test_dig = isdigit(password[i]);
if (!test_sp) test_sp = isspecial(password[i]);
}
cout << test_len + test_lc + test_uc + test_dig + test_sp;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc3NwZWNpYWwgKGNoYXIgYykgewoJcmV0dXJuIChjID09ICchJyB8fCBjID09ICciJyB8fCBjID09ICcjJyB8fAoJCQljID09ICckJyB8fCBjID09ICclJyB8fCBjID09ICcmJyB8fCAKCQkJYyA9PSAnKycgfHwgYyA9PSAnKCcgfHwgYyA9PSAnKScgIHx8CgkJCWMgPT0gJyonIHx8IGMgPT0gJ1wnJyk7Cn0KCmludCBtYWluKCkgewoJc3RyaW5nIHBhc3N3b3JkOwoJY2luID4+IHBhc3N3b3JkOwoJYm9vbCB0ZXN0X2xjLCB0ZXN0X3VjLCB0ZXN0X2RpZywgdGVzdF9zcCwgCgl0ZXN0X2xlbiA9IHBhc3N3b3JkLmxlbmd0aCgpID49IDg7CgkKCXRlc3RfbGMgPSB0ZXN0X3VjID0gdGVzdF9kaWcgPSBmYWxzZTsKCWZvciAoaW50IGkgPSAwOyBpIDwgcGFzc3dvcmQubGVuZ3RoKCk7IGkrKykgewoJCWlmICghdGVzdF9sYykgdGVzdF9sYyA9IGlzbG93ZXIocGFzc3dvcmRbaV0pOwoJCWlmICghdGVzdF91YykgdGVzdF91YyA9IGlzdXBwZXIocGFzc3dvcmRbaV0pOwoJCWlmICghdGVzdF9kaWcpIHRlc3RfZGlnID0gaXNkaWdpdChwYXNzd29yZFtpXSk7CgkJaWYgKCF0ZXN0X3NwKSB0ZXN0X3NwID0gaXNzcGVjaWFsKHBhc3N3b3JkW2ldKTsKCX0KCWNvdXQgPDwgdGVzdF9sZW4gKyB0ZXN0X2xjICsgdGVzdF91YyArIHRlc3RfZGlnICsgdGVzdF9zcDsKCXJldHVybiAwOwp9