#include #include #include using namespace std; using namespace __gnu_pbds; #define cint(d) scanf("%d", &d) #define cint2(a, b) scanf("%d %d", &a, &b) #define cint3(a, b, c) scanf("%d %d %d", &a, &b, &c) #define cint4(a, b, c, d) scanf("%d %d %d %d", &a, &b, &c, &d) #define clong(d) scanf("%lld", &d) #define clong2(a, b) scanf("%lld %lld", &a, &b) #define clong3(a, b, c) scanf("%lld %lld %lld", &a, &b, &c) #define clong4(a, b, c, d) scanf("%lld %lld %lld %lld", &a, &b, &c, &d) #define foreach(v, c) for(__typeof( (c).begin()) v = (c).begin(); v != (c).end(); ++v) #define revforeach(v, c) for(__typeof( (c).rbegin()) v = (c).rbegin(); v != (c).rend(); ++v) #define ALL(v) (v).begin(), (v).end() #define pb push_back #define eb emplace_back #define mp make_pair #define fi first #define se second typedef long long int slong; typedef pair pii; typedef pair pll; typedef tree, rb_tree_tag, tree_order_statistics_node_update> pbds; typedef set::iterator sit; typedef map::iterator mit; typedef vector::iterator vit; #ifdef VSP4 #include "debug.h" #else #define debug(args...) // Just strip off all debug tokens #endif const int MOD = 1000000007; #define MODSET(d) if ((d) >= MOD) d %= MOD; #define MODNEGSET(d) if ((d) < 0) d = ((d % MOD) + MOD) % MOD; #define MODADDSET(d) if ((d) >= MOD) d -= MOD; #define MODADDWHILESET(d) while ((d) >= MOD) d -= MOD; const int MAXN = 2e5; const int SQRTN = 650; const int LOGN = 60; const int INT_INFINITY = 1001001001; const slong LONG_INFINITY = 1001001001001001001ll; const slong LONG_LIMIT = 200100100100101ll; const slong MAX_LIMIT = 1000000000000000000ll; const int LIMIT = 1e6; int n, m, k; int arr[MAXN+5]; vector graph[MAXN+5]; int main() { #ifdef VSP4 freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif clock_t begin = clock(); int t, i, j, d; string str; string numbers = "0123456789"; string lower_case = "abcdefghijklmnopqrstuvwxyz"; string upper_case = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string special_characters = "!@#$%^&*()-+"; cin >> n >> str; { bool hasnum = false; for (auto s: str) { if (numbers.find(s) != string::npos) { hasnum = true; } } if (!hasnum) { str.pb('0'); } } { bool hasnum = false; for (auto s: str) { if (lower_case.find(s) != string::npos) { hasnum = true; } } if (!hasnum) { str.pb('a'); } } { bool hasnum = false; for (auto s: str) { if (upper_case.find(s) != string::npos) { hasnum = true; } } if (!hasnum) { str.pb('A'); } } { bool hasnum = false; for (auto s: str) { if (special_characters.find(s) != string::npos) { hasnum = true; } } if (!hasnum) { str.pb('#'); } } while (str.size() < 6) { str.pb('0'); } cout << str.size() - n; clock_t end = clock(); double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC; cerr << elapsed_secs; return 0; }