#include<bits/stdc++.h>
using namespace std;
long long ans=0;
int n,ch[1001000][26],f[1001000][26][2],flag[1001000],tot=1;
inline void dfs(int x)
{
	if(x==0) return;
	for(int i=0;i<26;i++) dfs(ch[x][i]);
	for(int i=0;i<26;i++) for(int j=0;j<26;j++)
	{
		if(i==j) f[x][i][1]+=f[ch[x][j]][i][0];
		else f[x][i][0]+=f[ch[x][j]][i][0];
		f[x][i][1]+=f[ch[x][j]][i][1];
	}
	for(int i=0;i<26;i++)
		ans+=1ll*flag[ch[x][i]]*(f[x][i][1]-flag[ch[x][i]]);
	for(int i=0;i<26;i++) f[x][i][0]+=flag[x];
	
}
int main()
{
	scanf("%d",&n);
	for(int x=1;x<=n;x++)
	{
		string s;cin>>s;
		reverse(s.begin(),s.end());
		int now=1;
		for(int i=0;i<(int)s.size();i++)
		{
			if(ch[now][s[i]-'a']==0)ch[now][s[i]-'a']=++tot;
			now=ch[now][s[i]-'a'];
		}
		flag[now]++;
	}
	dfs(1);
	cout<<ans<<endl;
}