#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")