//参考 poj9 1620 Phone Home
#include<iostream> //求图的色数,即使各相邻顶点的颜色不相同所需的最小色数.数据量小,直接枚举+DFS
#include<stdio.h>
#include<cstring>
using namespace std;
int n,cnt[30][30],color[30],num,suc;
void dfs(int i)
{
for(int c=1;c<=num;++c)
{
int flag=1;
for(int j=0;j<n;++j)
if(cnt[i][j]==1&&color[j]==c)
{
flag=0;
break;
}
if(flag==1)
{
color[i]=c;
if(i==n-1)
{
suc=1;
break;
}
dfs(i+1);
if(suc==1)
break;
color[i]=0;
}
}
}
int main()
{
char ch[50];
while(cin>>n&&n)
{
memset(cnt,0,sizeof(cnt));
for(int i=0;i<n;++i)
{
cin>>ch;
for(int j=2;j<strlen(ch);++j)
cnt[i][ch[j]-'A']=1;
}
memset(color,0,sizeof(color));
suc=0;
for(num=1;num<=4;++num) //枚举色数, 根据四色定理,色数最大为4
{
dfs(0);
if(suc==1)
{
if(num>1)
printf("%d channels needed.\n",num);
else
printf("1 channel needed.\n");
break;
}
}
}
return 0;
}