#include <bits/stdc++.h>
using namespace std;
const long long int mx = 1e5 + 1, Mod = 1e9 + 7, mc = 26;
int n;
int e[mx][mc];
bool on[mx];
int pt = 1;
multiset<int> st[mx];
void add(string &s) {
  int v = 0;
  for (char c : s) {
    if (!e[v][c - 'a']) e[v][c - 'a'] = pt++;
    v = e[v][c - 'a'];
  }
  on[v] = 1;
}
void merg(int v, int u) {
  if (!v) return;
  if (st[v].size() < st[u].size()) st[v].swap(st[u]);
  for (int x : st[u]) st[v].insert(x);
}
void hit(int v, int h) {
  if (st[v].empty() || h == 0) return;
  st[v].erase(--st[v].end());
  st[v].insert(h);
}
void dfs(int v = 0, int h = 0) {
  for (int i = 0; i < mc; i++)
    if (e[v][i]) dfs(e[v][i], h + 1), merg(v, e[v][i]);
  if (on[v])
    st[v].insert(h);
  else
    hit(v, h);
}
int main() {
  cin >> n;
  string s;
  for (int i = 0; i < n; i++) {
    cin >> s;
    add(s);
  }
  dfs();
  long long int ans = 0;
  for (int i = 0; i < mc; i++)
    if (e[0][i])
      for (int x : st[e[0][i]]) ans += x;
  cout << ans << '\n';
  return 0;
}
