#include<bits/stdc++.h>
using namespace std;
#define pb push_back
#define maxx 30
int color[maxx];
vector<int>G[maxx];
void clear()
{
   for(int i=0;i<maxx;i++)
     G[i].clear();
   memset(color,-1,sizeof color);  
}
void dfs(int s,int col)
{
    color[s]=col;
    for(int i=0;i<G[s].size();i++)
    {  
        if(color[G[s][i]]==-1)
        {  
            dfs(G[s][i],col);
        }
    }
}
int main()
{
    int t;
    scanf("%d",&t);
    scanf("\n");
    while(t--)
    {   
    	clear();
        char x;
        scanf("%c",&x);
        scanf("\n");
        int n=(int)(x-'A');
        string s;
        while((cin>>s))
        {  
            G[s[0]-'A'].pb(s[1]-'A');
            G[s[1]-'A'].pb(s[0]-'A');
        }
        int connect=0;
        for(int i=0;i<=n;i++)
        {
            if(color[i]==-1)
              dfs(i,++connect);
        }
        cout<<connect<<endl;
    }
    return 0;
}
