#include #include #include using namespace std; using namespace __gnu_pbds; #define fi first #define se second #define mp make_pair #define pb push_back #define pf push_front; #define fbo find_by_order #define ook order_of_key #define lb lower_bound #define ub upper_bound #define rep(i,n) for(int i=0;i ii; typedef vector vi; typedef long double ld; typedef map spt; typedef set si; typedef multiset::iterator sit; typedef map::iterator mi; typedef vector::iterator vit; typedef vector vii; typedef set sii; typedef multiset msi; typedef vector< vector > matrix; typedef tree,rb_tree_tag,tree_order_statistics_node_update> ost; typedef tree,rb_tree_tag,tree_order_statistics_node_update> ost1; const ll INF = 1e18; const int MOD = 1e9 + 7; const int N = 1e6 +5; char c[N]; vii adj[N]; ll vis[N]; ll w[502][502]; map gm; int main() { int n,k; cin>>n; string s; cin>>s; ll f1=1,f2=1,f3=1,f4=1; rep(i,n) { if(s[i]>='0' && s[i]<='9') f1=0; else if(s[i]>='a' && s[i]<='z') f2=0; else if(s[i]>='A' && s[i]<='Z') f3=0; else f4=0; } cout<