using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; class Solution { private static Regex r_numbers = new Regex ("0|1|2|3|4|5|6|7|8|9"); private static Regex r_letters_low = new Regex ("a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z"); private static Regex r_letters_high = new Regex ("A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"); private static Regex r_symbols; static int minimumNumber(int n, string password) { int missing = 0; if(r_numbers.IsMatch(password) == false) { missing++; } if(r_letters_low.IsMatch(password) == false) { missing++; } if(r_letters_high.IsMatch(password) == false) { missing++; } if(r_symbols.IsMatch(password) == false) { missing++; } return Math.Max(missing, 6-n); } static void Main(String[] args) { string sym = ""; foreach( char c in "!@#$%^&*()-+") { sym += Regex.Escape("" + c) + "|"; } sym = sym.Remove(sym.Length - 1); r_symbols = new Regex (sym); int n = Convert.ToInt32(Console.ReadLine()); string password = Console.ReadLine(); int answer = minimumNumber(n, password); Console.WriteLine(answer); } }