#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>

#define HASHSIZE 100

struct list {
    char keyword[11];
    struct list *next;
};

struct list *hashtable[HASHSIZE] = {NULL};

int hash(char *key)
{
    int hashval = 0;
    while(*key != '\0')
        hashval += *key++;
    return (hashval % HASHSIZE);
}

int main()
{
    struct list *lst, *new, *prev;
    long int n, i, j;
    long int num = 0;
    int val;
    char name[11];
    scanf("%ld", &n);

    for(i=0; i<n; i++)
    {
        scanf("%s", name);
        val = hash(name);
        if(hashtable[val] == NULL)
        {
            new = (struct list*)malloc(sizeof(struct list));
            strcpy(new->keyword, name);
            new->next = NULL;
            hashtable[val] = new;
            num++;
//            printf("\n(1)name: %s, hash val = %d\n", name, val);
        }
        else
        {
            lst = hashtable[val]; 
            while(lst != NULL)
            {
                if(strcmp(lst->keyword, name) == 0)
                {
                    break;
                }
                prev = lst;
                lst = lst->next;
            }
            if(lst == NULL)
            {
                new = (struct list*)malloc(sizeof(struct list));
                strcpy(new->keyword, name);
                new->next = NULL;
                prev->next = new;
                num++;
 //               printf("\n(2)name: %s, hash val = %d\n", name, val);
            }
        }
    }
    printf("%ld\n", num);

    return 0;
}


