#pragma comment(linker, "/stack:200000000") #pragma GCC optimize ("Ofast") #pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include using namespace std; #define TRACE #ifdef TRACE #define trace(...) __f(#__VA_ARGS__, __VA_ARGS__) template void __f(const char* name, Arg1&& arg1){ cerr << name << " : " << arg1 << std::endl; } template void __f(const char* names, Arg1&& arg1, Args&&... args){ const char* comma = strchr(names + 1, ',');cerr.write(names, comma - names) << " : " << arg1<<" | ";__f(comma+1, args...); } #else #define trace(...) #endif #define rep(i, n) for(int i = 0; i < (n); ++i) #define repA(i, a, n) for(int i = a; i <= (n); ++i) #define repD(i, a, n) for(int i = a; i >= (n); --i) #define trav(a, x) for(auto& a : x) #define all(x) x.begin(), x.end() #define sz(x) (int)(x).size() #define fill(a) memset(a, 0, sizeof (a)) #define fst first #define snd second #define mp make_pair #define pb push_back typedef long double ld; typedef long long ll; typedef pair pii; typedef vector vi; void pre(){ } void solve(){ int n;cin>>n; bitset<26> b;b.set(); rep(i,n){ bitset<26> c; string s;cin>>s; trav(i,s) c[i-'a']=1; b = b&c; } cout<>n; rep(i,n) solve(),cout<<'\n'; return 0; }