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



struct LIST{
  char name[13];
  struct LIST *next;
} ;

/* 会員情報をリストの最後に追加し、リストの先頭アドレスを返却する関数 */
struct LIST* addList(struct LIST *list, char *name){
  struct LIST *item;
  struct LIST *top;

  top = list;

  item = (struct LIST*)malloc(sizeof(struct LIST));
  strcpy(item->name, name);
  item->next = NULL;


  /* リストが空の場合は先頭に追加して終了 */
  if(list == NULL){
    list = item;
    return list;
  }

  /* リストのnextを辿ってリストの最後を探す */
  /* リストの最後とは、nextがNULLの要素 */
  while(list->next != NULL){
    list = list->next;
  }
  list->next = item;

  /* ここでreturnする場合は先頭アドレスは変わらない */
  return top;
}

int main(void){
  int num=0,flag=1,n;
  char inputname[13];

  struct LIST *list = NULL;
  struct LIST *a;
 
  
      (void)scanf("%d",&n);
      (void)scanf("%s", inputname);
      list = addList(list, inputname);
      num++;
      while(n-1){
        (void)scanf("%s", inputname);
        a=list;
      while(a!=NULL){
        if(strcmp(inputname,a->name)==0)
        flag=0;
        a=a->next;
      }
      if(flag){
      list = addList(list, inputname);
      num++;
      }
      n--;
      }
    
  
  printf("%d\n",num);
  return 0;
}