#include<iostream>
#include<cmath>
#include<algorithm>
#include<vector>
#include<functional>
#include<string>
#include<iomanip>
#include<map>
#include<utility>
#include<string>
#include<unordered_map>
#include<queue>

template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return true; } return false; }
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return true; } return false; }

using namespace std;

typedef long long ll;
typedef pair<int, int> P;
int gcd(int a, int b){return b ? gcd(b, a%b) : a;}
const int INF = 1000000007;

int main(){
   int n;
   cin >> n;
   vector<string> s(n);
   for(int i = 0; i < n; i++) cin >> s[i];
   sort(s.begin(), s.end());
   s.erase(unique(s.begin(), s.end()), s.end()); //uniqueはごみの先頭イテレータを返す
   cout << s.size() << endl;
   return 0;
}
 