#include #define fi first #define se second #define mp make_pair #define pb push_back #define pob pop_back #define pf push_front #define pof pop_front #define FOR(i,n) for(int i=0;i=0;i--) #define REVV(i,l,r,c) for(int i=r;i>=l;i-=c) #define REV(i,l,r) REVV(i,l,r,1) using namespace std; typedef long long ll; typedef unsigned long long ull; typedef vector vi; typedef pair pii; typedef pair pll; typedef vector vii; const int INF=(int)1e9; const double EPS=(double)1e-9; const double PI=(double)acos(-1.0); const ll MOD=(ll)1e9+7; int irand(int lo, int hi){ return (((double)rand())/(RAND_MAX+1.0)) * (hi-lo+1) + lo; } string toString(ll x) { stringstream ss; ss << x; return ss.str(); } ll toNumber(string S) { ll ret; sscanf(S.c_str(),"%lld",&ret); return ret; } void syncOff(){ ios_base::sync_with_stdio(0); cin.tie(0); } string spe = "!@#$%^&*()-+"; int main(){ int n; cin>>n; string s; cin>>s; int num=1, low=1, up=1, spes=1; FOR(i,n){ if(s[i]>='0' && s[i]<='9') num=max(0,num-1); if(s[i]>='a' && s[i]<='z') low=max(0,low-1); if(s[i]>='A' && s[i]<='Z') up=max(0,up-1); FOR(j,spe.length()){ if(s[i]==spe[j]){ spes=max(spes-1,0); break; } } } int res=num+low+up+spes; cout<