#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define F first #define S second #define EB emplace_back #define MP make_pair #define all(o) (o).begin(), (o).end() #define mset(m,v) memset(m,v,sizeof(m)) #define fr(i,n) for(lli i=0;i=a;--i) #define remin(a,b) (a=min((a),(b))) #define remax(a,b) (a=max((a),(b))) #define chartostr(x) string(1,(char)(x)) #define fastIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0) typedef long int li; typedef long long int lli; typedef long double ld; typedef pair< lli,lli > ii; template inline T binpow(T p,T e,T M){lli ret = 1;for(; e > 0; e >>= 1){if(e & 1) ret = (ret * p) % M;p = (p * p) % M;}return (T)ret;} template inline T gcd(T a,T b){if(b==0)return a;return gcd(b,a%b);} template inline T modinverse(T a,T M){return bigmod(a,M-2,M);} // M is prime} typedef vector vi; typedef vector vii; typedef vector graph; lli MOD=1000000007;long double EPS=1e-9; lli countbits(lli n){lli count=0;while(n){n = n&(n-1);count++;}return count;} lli tolli(string s){lli sm;stringstream ss(s);ss>>sm;return sm;} vi tobinary(lli n){vi bin;while(n){bin.EB(n%2);n/=2;};reverse(all(bin));return bin;} void pre(){ } void solve(){ int n; cin>>n; string a; cin>>a; int arr[4]; mset(arr,0); for(int i=0;i='0')arr[0]++; else if(a[i]<='z'&&a[i]>='a')arr[1]++; else if(a[i]<='Z'&&a[i]>='A')arr[2]++; else arr[3]++; } lli ans=4; if(arr[0])ans--; if(arr[1])ans--; if(arr[2])ans--; if(arr[3])ans--; if(a.length()<6)ans=max((lli)(6-a.length()),ans); cout<>t; for(int i=1;i<=t;i++){ solve(); } }