/* CODE BY - ABHISHEK KUMAR NIT DURGAPUR */ #include using namespace std; //data types #define ll long long #define ull unsigned long long //stl typedef vector vi; typedef vector vvi; typedef pair pii; typedef map mpll; #define pb push_back #define all(c) (c).begin(),(c).end() #define tr(c,i) for(typeof((c).begin()) i = (c).begin(); i != (c).end(); i++) #define present(c,x) ((c).find(x) != (c).end()) #define cpresent(c,x) (find(all(c),x) != (c).end()) //loops #define loop(i,a,b) for(ll i=a;i<=b;i++) #define loopr(i,a,b) for(ll i=a;i>=b;i--) //others #define isPowerOfTwo(S) !(S & (S - 1)) #define nearestPowerOfTwo(S) ((int)pow(2.0, (int)((log((double)S) / log(2.0)) + 0.5))) #define nline cout<>n; string s; cin>>s; ll len = s.length(); ll flag = 0; ll count = 0; loop(i,0,len-1) { if (spe.find(s[i]) != std::string::npos) { flag = 1; break; } } if(flag == 0) count++; flag = 0; loop(i,0,len-1) { if (lower.find(s[i]) != std::string::npos) { flag = 1; break; } } if(flag == 0) count++; flag = 0; loop(i,0,len-1) { if (upper.find(s[i]) != std::string::npos) { flag = 1; break; } } if(flag == 0) count++; flag = 0; loop(i,0,len-1) { if (num.find(s[i]) != std::string::npos) { flag = 1; break; } } if(flag == 0) count++; // cout<