/* Author : icoder211 */

#include<bits/stdc++.h>
#define F first
#define S second
#define PB push_back
#define ln "\n"
#define mp make_pair
#define forn(i,e) for( i=0; i<e; i++)
#define forsn(i,s,e) for( i=s; i<e; i++)
#define rforn(i,e) for( i=e; i>=0; i--)
#define rforsn(i,s,e) for( i=e; i>=s; i--)
#define vasort(v)         sort(v.begin(), v.end());
#define vdsort(v)         sort(v.begin(), v.end(),greater<int>());

#define all(x) x.begin(), x.end()

#define out1(x1) cout << x1 << ln
#define out2(x1,x2) cout << x1 << " " << x2 << ln
#define out3(x1,x2,x3) cout << x1 << " " << x2 << " " << x3 << ln
#define out4(x1,x2,x3,x4) cout << x1 << " " << x2 << " " << x3 << " " << x4 << ln
#define out5(x1,x2,x3,x4,x5) cout << x1 << " " << x2 << " " << x3 << " " << x4 << " " << x5 << ln
#define out6(x1,x2,x3,x4,x5,x6) cout << x1 << " " << x2 << " " << x3 << " " << x4 << " " << x5 << " " << x6 << ln

#define in1(x1) cin >> x1
#define in2(x1,x2) cin >> x1 >> x2
#define in3(x1,x2,x3) cin >> x1 >> x2 >> x3
#define in4(x1,x2,x3,x4) cin >> x1 >> x2 >> x3 >> x4
#define in5(x1,x2,x3,x4,x5) cin >> x1 >> x2 >> x3 >> x4 >> x5
#define in6(x1,x2,x3,x4,x5,x6) cin >> x1 >> x2 >> x3 >> x4 >> x5 >> x6

#define arrin(a,n) forn(i,n) cin >> a[i];
#define arrout(a,n) forn(i,n) {cout << a[i] << " ";} cout << ln;

#define fio ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)

typedef long long ll;
using namespace std;
typedef long double ld;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<ld,ld> pld;
typedef vector<int> vi;
typedef vector<ll> vll;



// fast exponentiation - O(log(n))
ll exp(ll n, ll m, ll md){
        ll a = 1;
        while (m > 0){
                if (m&1) a = (a * n%md) % md;
                m /= 2;
                n = (n*n) % md;
        }
        return a % md;
}

void disp(vll v){
        for(auto u:v)
                cout<<u<<" ";
        cout<<"\n";
}



//function for primality checking - O(sqrt(n))
bool prime(ll n) {
        if (n < 2) return false;
        for (ll x = 2; x*x <= n; x++) {
                if (n%x == 0) return false;
        }
        return true;
}




void solve1(){
        ll s, w;
        cin >> s >> w;
        cout << (w >= s ? "unsafe" : "safe");
}

void solve2(){

        ll a, b, c, d;
        cin >> a>>b>>c>>d;
        if(a > b) cout << "yes";
}
void solve3(){
        int n;
        cin>>n;
        vector<string> a(n);
        int i, j, k;
        set<string> s;
        forn(i, n) {
                cin >> a[i];
                s.insert(a[i]);
        }
        cout << s.size();
        
}

int main(){
        fio;
        //freopen("input.txt","r",stdin);freopen("output.txt","w",stdout);

        chrono::high_resolution_clock::time_point start = chrono::high_resolution_clock::now();

        ll tt = 1;
        //cin >> tt;
        ll t = tt;
        cout<<fixed<<setprecision(10);


        while(tt--){
                //cout << "Case #" << t - tt << ": ";
                solve3();
        }

        chrono::high_resolution_clock::time_point end = chrono::high_resolution_clock::now();
        long double time_spent = (chrono::duration_cast<chrono::duration<long double> >(end-start)).count();
        //double time_taken = time_spent / double(CLOCKS_PER_SEC);
        cerr<<time_spent<<'\n';
        return 0;
}


Measured memory_bytes: 25100