#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e6+5;
int num[N],nex[N][26],sum[N][26],cnt=1;
ll ans;
string s[N/5+5];
void add1(int x){
    int n=s[x].length();
    int now=1;
    for(int i=n-1;~i;i--){
        if(!nex[now][s[x][i]-'a'])
            nex[now][s[x][i]-'a']=++cnt;
        now=nex[now][s[x][i]-'a'];
    }
}
void add2(int x){
    int n=s[x].length();
    int now=1;
    for(int i=0;i<n;i++){
        for(int j=0;j<26;j++){
            if(s[x][i]-'a'==j)sum[i][j]=(i>0?sum[i-1][j]:0)+1;
            else sum[i][j]=(i>0?sum[i-1][j]:0);
        }
    }
    for(int i=n-1;~i;i--){
        for(int j=0;j<26;j++)
            if(sum[i][j]&&nex[now][j])
                num[nex[now][j]]++;
        now=nex[now][s[x][i]-'a'];
    }
}
void finds(int x){
    int n=s[x].length();
    int now=1;
    for(int i=n-1;~i;i--)
        now=nex[now][s[x][i]-'a'];
    ans+=num[now]-1;
}
int main()
{
    cin.tie(0);
    ios::sync_with_stdio(false);
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>s[i];
        add1(i);
    }
    for(int i=1;i<=n;i++)
        add2(i);
    for(int i=1;i<=n;i++)
        finds(i);
    cout<<ans<<'\n';
    return 0;
}

