#include<bits/stdc++.h>
using namespace std;
int N;
string F;
vector<string>U[101];
int check(string F,int i){
int C=F.length();
for(int k=0;k<i;k++){
if(F[k]!=F[C-i+k]){
return 0;
}
}
string E="";
for(int k=i;k<C-i;k++){
E+=F[k];
}int R=lower_bound(U[C-2*i].begin(),U[C-2*i].end(),E)-U[C-2*i].begin();
return R<U[C-2*i].size()&&U[C-2*i][R]==E;
}
int main(){
cin>>N;
for(int n=0;n<N;n++){
cin>>F;
U[F.length()].push_back(F);
}
for(int L=1;L<=100;L=L+1)
sort(U[L].begin(),U[L].end());
int K=0;
for(int L=3;L<=100;L+=1){
for(string x : U[L]){
for(int i=1;1+2*i<=L;i++){
K+=check(x,i);
}
}
}
cout<<K;
}