#include<stdio.h>
#include<string>
#include<map>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
char in[1024];
vector<int> g[1024];
int bfs[1024];
int main(){
	int a;
	while(scanf("%d",&a),a){
		string str;
		for(int i=0;i<1024;i++)g[i].clear();
		map<string,int> m;
		for(int i=0;i<a;i++){
			scanf("%s",in);
			str=in;
			int from=0;
			int S=0;
			for(int j=0;j<str.size();j++){
				if(str[j]==':'){
					string name=str.substr(from,j-from);
					if(m.count(name)){
						S=m[name];
					}else{
						S=m.size();
						m[name]=S;
					}
					from=j+1;
				}
				else if(str[j]==','||str[j]=='.'){
					string name=str.substr(from,j-from);
					int T=0;
					if(m.count(name)){
						T=m[name];
					}else{
						T=m.size();
						m[name]=T;
					}
					g[S].push_back(T);
					from=j+1;
				}
			}
		}
		for(int i=0;i<1024;i++)bfs[i]=0;
		bfs[0]=1;
		queue<int>Q;
		Q.push(0);
		while(Q.size()){
			int at=Q.front();Q.pop();
	//		printf(" %d\n",at);
			for(int i=0;i<g[at].size();i++){
				if(!bfs[g[at][i]]){
					bfs[g[at][i]]=1;
					Q.push(g[at][i]);
				}
			}
		}
		int ret=0;
		for(int i=0;i<m.size();i++)if(bfs[i]&&!g[i].size())ret++;
		printf("%d\n",ret);
	}
}