/*
AizuOnline A1305
Title:Membership Management
@kankichi573
*/
#include <stdio.h>
#include <string.h>
//Global data section
int n;
char buf[100][10000];
//
int what_group(char * name)
{
        int i;

        for(i=0;i<n;i++)
        {
                if(0==strncmp(name,&buf[i][0],strlen(name)))
                        return(i);
        }
        return(-1);
}
int how_many_members(int i)
{
        char *p,*pold;
        int sum,gr;
        char buf2[10000];

        strcpy(buf2,&buf[i][0]);
        p=buf2;pold=buf2;
        while(*p!=':' && *p)
                p++;
        *p='\0';
#ifdef DEBUG
        printf("GR=%s\n",pold);
#endif
        sum=0;
        while(1)
        {
                p++;
                pold=p;

                while(((*p!=',')&&(*p!='.')&&(*p!=0)))
                        p++;
                if(*p=='\0')
                        break;

                *p='\0';
#ifdef DEBUG
                printf(":MEM=%s\n",pold);
#endif
                if((gr=what_group(pold))!=-1) //
                        sum += how_many_members(gr);
                else
                        sum ++;  // 構成員
        }
        return(sum);
}
main()
{
        int i;

        while(EOF!=scanf("%d",&n) && n)
        {
                for(i=0;i<n;i++)
                        scanf("%s",&buf[i][0]);

                //for(i=0;i<n;i++)
                //      printf("%s\n",&buf[i][0]);
                printf("%d\n",how_many_members(0));
        }
        return(0);
}