#include <iostream>
using namespace std;
#include<map>
#include<string>
int main() {
int N;
cin>>N;
map<string,map<string,int>>m;//存储 S C int
for(int i=0;i<N;i++){
string s,c;
cin>>s>>c;
s=s.substr(0,2);
m[s][c]++;
}
int countpair=0;
for(map<string,map<string,int>>::iterator it1=m.begin();it1!=m.end();it1++){
string S=(*it1).first;
for(map<string,int>::iterator it2=(*it1).second.begin();it2!=(*it1).second.end();it2++){
string C=(*it2).first;
if(S!=C){//防止出现同一个州的情况 需要来自不同的州
int count1=m[S][C]; //S C的数量
int count2=m[C][S]; //C S的数量
countpair+=count1*count2; //乘起来 就是能匹配到的对数
}
}
}
cout<<countpair/2;//记得除二
}
// 64 位输出请用 printf("%lld")
// #include <iostream>//双循环暴力超时
// using namespace std;
// #include<map>
// int main() {
// int N;
// cin>>N;
// multimap<string,string>m;
// for(int i=0;i<N;i++){
// string s,c;
// cin>>s>>c;
// s=s.substr(0,2);
// // cout<<s;
// m.insert(make_pair(s,c));
// }
// int num=0;
// for(multimap<string,string>::iterator it1=m.begin();it1!=m.end();it1++){
// for(multimap<string,string>::iterator it2=m.begin();it2!=m.end();it2++){
// if((*it1).first==(*it2).second&&(*it2).first==(*it1).second&&(*it1)!=(*it2)){
// num++;
// }
// }
// }
// cout<<num/2;
// }
// // 64 位输出请用 printf("%lld")