#include #define mem( a , b ) memset( a , b , sizeof(a) ) using namespace std; int _I(){ int x ; scanf("%d",&x); return x; } struct node{ int s , d; node(){}; node ( int x , int y ) { s = x; d = y; } }; int dx[ 5 ] = { 1 , -1 , 0 , 0 }; int dy[ 5 ] = { 0 , 0 , 1 , -1 }; int dp[ 1001 ][ 1024 ]; const int mod = 100000007; void solve() { string ss = "!@#$%^&*()-+"; int n = _I(); string s; cin>>s; int cnt = 4; bool flag[ 4 ]; mem( flag , 0 ); for( int i = 0 ; i < n ; i++ ) { if( (s[ i ] >= '0' && s[ i ] <= '9') ) flag[ 0 ] = 1 ; if ( s[ i ] >= 'A' && s[ i ] <= 'Z' ) flag[ 1 ] = 1 ; if (s[ i ] >= 'a' && s[ i ] <= 'z') flag[ 2 ] = 1; else{ int sz = ss.size(); for( int j = 0 ; j < sz ; j++ ) { if( s[ i ] == ss[ j ] ) flag[ 3 ] = 1; } } } if( n < 6 ) { int f = cnt-(flag[ 0 ] + flag[ 1 ] + flag[ 2 ] + flag[ 3 ]); int ans = n + f; if( ans < 6 ) ans += ( 6 - (n+f) ); printf("%d\n", ans - n); } else{ printf("%d\n", cnt - ( flag[ 0 ] + flag[ 1 ] + flag[ 2 ] + flag[ 3 ] ) ); } } int main() { //freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); //int t = _I(); //while( 1 ) solve(); return 0; }