#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
bool ed[N];
int n, tot = 0, ans = 0, trie[N][26];
char str[N];
priority_queue<int, vector<int>, less<int> > Q[N];
void dfs(int u, int d) {
  for (int i = 0; i < 26; i++) {
    if (trie[u][i] != 0) {
      dfs(trie[u][i], d + 1);
      while (!Q[trie[u][i]].empty()) {
        Q[u].push(Q[trie[u][i]].top());
        Q[trie[u][i]].pop();
      }
    }
  }
  if (!ed[u] && u != 0) {
    ans -= Q[u].top() - d;
    Q[u].pop();
    Q[u].push(d);
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%s", str + 1);
    int len = strlen(str + 1), now = 0;
    for (int j = 1; j <= len; j++) {
      if (!trie[now][str[j] - 'a']) trie[now][str[j] - 'a'] = ++tot;
      now = trie[now][str[j] - 'a'];
    }
    ed[now] = true;
    Q[now].push(len);
    ans += len;
  }
  dfs(0, 0);
  printf("%d", ans);
  return 0;
}
