#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int inf=1<<30; const ll INF=1LL<<62; typedef pair P; typedef pair PP; const ll MOD=998244353; ll dp[6][6][6][6][6][6][6][6]; int main(){ int N,K; cin>>N>>K; vector S(N); for(int i=0;i>S[i]; } unordered_set visited; for(auto tg:S){ if(visited.count(tg)){ continue; } vector stk; stk.push_back(tg); while(!stk.empty()){ string s=stk.back(); stk.pop_back();//tgは考えるべき候補から外されるので visitedにならない for(int i=0;inv if(visited.count(nv)==0){ stk.push_back(nv); visited.insert(nv); } } } } int ans=0; for(string s:S){ if(visited.count(s)){ ans++; } } cout<