#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 5;
int trie[maxn][26];
multiset<int> s[maxn];
int tot;
void insert(string &S) {
  int u = 0;
  int n = S.length();
  for (int i = 0; i < n; i++) {
    int id = S[i] - 'a';
    if (trie[u][id] == -1) trie[u][id] = ++tot;
    u = trie[u][id];
  }
  s[u].insert(n);
}
void dfs(int u, int dep) {
  int flag = (u && s[u].empty());
  for (int i = 0; i < 26; i++) {
    int v = trie[u][i];
    if (v == -1) continue;
    dfs(v, dep + 1);
    if (s[u].size() < s[v].size()) s[u].swap(s[v]);
    multiset<int>::iterator it;
    for (it = s[v].begin(); it != s[v].end(); it++) s[u].insert(*it);
    s[v].clear();
  }
  if (flag) {
    s[u].erase(--s[u].end());
    s[u].insert(dep);
  }
}
int main() {
  memset(trie, -1, sizeof(trie));
  int n;
  string S;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    cin >> S;
    insert(S);
  }
  dfs(0, 0);
  long long ans = 0;
  multiset<int>::iterator it;
  for (it = s[0].begin(); it != s[0].end(); it++) ans = ans + (*it);
  printf("%lld\n", ans);
  return 0;
}
