#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main() {
int n, i;
int a = 0;
char s[100];
if (fgets(s
, 100, stdin
) == NULL
) { return 0;
}
// 如果最後一個字元是換行,就去掉它
if (n > 0 && s[n - 1] == '\n') {
s[n - 1] = '\0';
n--;
}
// 如果輸入太短
if (n < 8) {
return 0;
}
// 檢查是否有大寫字母
for (i = 0; i < n; i++) {
if (isupper((unsigned char)s
[i
])) { a++;
break;
}
}
// 檢查是否有小寫字母
for (i = 0; i < n; i++) {
if (islower((unsigned char)s
[i
])) { a++;
break;
}
}
// 檢查是否有數字
for (i = 0; i < n; i++) {
if (isdigit((unsigned char)s
[i
])) { a++;
break;
}
}
// 檢查是否有特殊符號
for (i = 0; i < n; i++) {
if (!isalnum((unsigned char)s
[i
])) { a++;
break;
}
}
if (a == 1) {
} else if (a == 2) {
} else if (a >= 3 && a <= 4) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojaW5jbHVkZSA8Y3R5cGUuaD4KCmludCBtYWluKCkgewogICAgaW50IG4sIGk7CiAgICBpbnQgYSA9IDA7CiAgICBjaGFyIHNbMTAwXTsKCiAgICBpZiAoZmdldHMocywgMTAwLCBzdGRpbikgPT0gTlVMTCkgewogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIG4gPSBzdHJsZW4ocyk7CgogICAgLy8g5aaC5p6c5pyA5b6M5LiA5YCL5a2X5YWD5piv5o+b6KGM77yM5bCx5Y675o6J5a6DCiAgICBpZiAobiA+IDAgJiYgc1tuIC0gMV0gPT0gJ1xuJykgewogICAgICAgIHNbbiAtIDFdID0gJ1wwJzsKICAgICAgICBuLS07CiAgICB9CgogICAgLy8g5aaC5p6c6Ly45YWl5aSq55+tCiAgICBpZiAobiA8IDgpIHsKICAgICAgICBwcmludGYoIlRvbyBzaG9ydC4iKTsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICAvLyDmqqLmn6XmmK/lkKbmnInlpKflr6vlrZfmr40KICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoaXN1cHBlcigodW5zaWduZWQgY2hhcilzW2ldKSkgewogICAgICAgICAgICBhKys7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDmqqLmn6XmmK/lkKbmnInlsI/lr6vlrZfmr40KICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoaXNsb3dlcigodW5zaWduZWQgY2hhcilzW2ldKSkgewogICAgICAgICAgICBhKys7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDmqqLmn6XmmK/lkKbmnInmlbjlrZcKICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoaXNkaWdpdCgodW5zaWduZWQgY2hhcilzW2ldKSkgewogICAgICAgICAgICBhKys7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgIH0KCiAgICAvLyDmqqLmn6XmmK/lkKbmnInnibnmrornrKbomZ8KICAgIGZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoIWlzYWxudW0oKHVuc2lnbmVkIGNoYXIpc1tpXSkpIHsKICAgICAgICAgICAgYSsrOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgaWYgKGEgPT0gMSkgewogICAgICAgIHByaW50ZigiTG93LiIpOwogICAgfSBlbHNlIGlmIChhID09IDIpIHsKICAgICAgICBwcmludGYoIk1lZGl1bS4iKTsKICAgIH0gZWxzZSBpZiAoYSA+PSAzICYmIGEgPD0gNCkgewogICAgICAgIHByaW50ZigiU3Ryb25nLiIpOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==