#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int n, trie[N][26], ptr, dep[N], cnt[N], ans;
priority_queue<int> pq[N];
char s[N];
void add() {
  int pos = 0, l = strlen(s);
  for (int i = 0; i < l; i++) {
    if (!trie[pos][s[i] - 'a'])
      trie[pos][s[i] - 'a'] = ++ptr, dep[ptr] = dep[pos] + 1;
    pos = trie[pos][s[i] - 'a'];
  }
  ++cnt[pos];
}
void merge(int a, int b) {
  if (pq[a].size() < pq[b].size()) swap(pq[a], pq[b]);
  while (!pq[b].empty()) pq[a].push(pq[b].top()), pq[b].pop();
}
void dfs(int pos) {
  for (int i = 0; i < 26; i++)
    if (trie[pos][i]) dfs(trie[pos][i]), merge(pos, trie[pos][i]);
  if (!pos) return;
  pq[pos].push(dep[pos]);
  if (cnt[pos]) {
    ans += dep[pos];
    return;
  }
  ans -= pq[pos].top() - dep[pos];
  pq[pos].pop();
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> s;
    add();
  }
  dfs(0);
  cout << ans << endl;
  return 0;
}
