#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define endl '\n' #define ALL(v) (v).begin(), (v).end() #define RALL(v) (v).rbegin(), (v).rend() #define UNIQ(v) (v).erase(unique((v).begin(), (v).end()), (v).end()) typedef long long ll; typedef long double ld; typedef pair P; typedef complex comp; typedef vector< vector > matrix; struct pairhash { public: template size_t operator()(const pair &x) const { size_t seed = hash()(x.first); return hash()(x.second) + 0x9e3779b9 + (seed<<6) + (seed>>2); } }; const int inf = 1e9 + 9; const ll mod = 1e9 + 7; const double eps = 1e-8; const double pi = acos(-1); int n; string s; int solve() { int num[9]; memset(num, 0, sizeof(num)); for (int i = 0; i < n; i++) { if (s[i] == 'y') num[0]++; else if ('v' <= s[i] && s[i] <= 'x') num[1]++; else if (s[i] == 'u') num[2]++; else if ('l' <= s[i] && s[i] <= 't') num[3]++; else if (s[i] == 'k') num[4]++; else if (s[i] == 'j') num[5]++; else if (s[i] == 'i') num[6]++; else if (s[i] == 'z') num[7]++; else num[8]++; } int res = 0; res += num[7]; int d = min(num[0], num[1]); res += d; num[0] -= d; num[1] -= d; d = min(num[0], min(num[2], num[3])); res += d; num[0] -= d; num[2] -= d; num[3] -= d; d = min(min(num[0], num[2]), min(num[4], num[5])); res += d; num[0] -= d; num[2] -= d; num[4] -= d; num[5] -= d; d = min(min(num[0], num[2]), min(num[4], num[6])); d = min(d, num[8]+num[6]-d); res += d; d = min(num[0], min(num[2], num[4]/2)); res += d; num[0] -= d; num[2] -= d; num[4] -= 2*d; d = min(num[0], num[2]/2); res += d; num[0] -= d; num[2] -= 2*d; d = num[0]/2; res += d; num[0] -= 2*d; return res; } void input() { cin >> n >> s; } int main() { ios::sync_with_stdio(false); cin.tie(0); cout << fixed << setprecision(15); input(); cout << solve() << endl; }