// [COCI2017-2018#1] Lozinke
#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false), cin.tie(0);
  int n, ans = 0;
  cin >> n;
  vector<string> ps(n);
  map<string, int> cnt;
  for (string& p : ps) {
    cin >> p;
    set<string> ss;  // 记录p的所有不同的子串
    for (int i = 0, len = p.length(); i < len; i++)  // p的所有子串p[i,i+j)
      for (int j = 1; j <= len - i; j++) ss.insert(p.substr(i, j));
    for (const string& s : ss) ++cnt[s];
  }
  for (const string& p : ps) ans += cnt[p] - 1;  // p作为子串出现几次?
  cout << ans << "\n";
  return 0;
}
// AC 100
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |