#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

const int MAXN = 2e5;

struct Node
{
	int cnt[26];
	Node *chd[26];
	Node()
	{
		for(int i=0; i<26; i++) chd[i]=NULL, cnt[i]=0;
	}
};

int T[26];
Node *A[MAXN+10];
void push(Node *node, string &S, int pos, int x)
{
	if(pos+1==S.size()) A[x]=node;
	if(pos==S.size()) return;
	char c=S[pos];
	if(node->chd[c-'a']==NULL) node->chd[c-'a']=new Node();
	push(node->chd[c-'a'], S, pos+1, x);
	T[c-'a']=1;
	for(int i=0; i<26; i++) node->cnt[i]+=T[i];
}

int N;
string S[MAXN+10];
ll ans;

Node *root=new Node();

int main()
{
	cin>>N;
	for(int i=1; i<=N; i++)
	{
		for(int j=0; j<26; j++) T[j]=0;
		cin>>S[i];
		reverse(S[i].begin(), S[i].end());
		push(root, S[i], 0, i);
	}
	for(int i=1; i<=N; i++)
	{
		ans+=A[i]->cnt[S[i].back()-'a']-1;
	}
	printf("%lld\n", ans);
}