process.stdin.resume(); process.stdin.setEncoding('ascii'); var input_stdin = ""; var input_stdin_array = ""; var input_currentline = 0; process.stdin.on('data', function (data) { input_stdin += data; }); process.stdin.on('end', function () { input_stdin_array = input_stdin.split("\n"); main(); }); function readLine() { return input_stdin_array[input_currentline++]; } /////////////// ignore above this line //////////////////// const nums = "0123456789" const lc = "abcdefghijklmnopqrstuvwxyz" const uc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" const sc = "!@#$%^&*()-+" const min_length = 6 function hasThing(str, thing) { return thing.split("").reduce((a, c) => a || (str.includes(c)), false); } function boolToNum(bool) { return bool ? 0 : 1; } function minimumNumber(n, password) { // Return the minimum number of characters to make the password strong const minCheck = n < min_length ? min_length - n : 0; const charsNeeded = [nums, lc, uc, sc].reduce((a, c) => a + boolToNum(hasThing(password, c)), 0); return Math.max(minCheck, charsNeeded); } function main() { var n = parseInt(readLine()); var password = readLine(); var answer = minimumNumber(n, password); process.stdout.write("" + answer + "\n"); }