#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long int ll;
#define fast ios_base::sync_with_stdio(0), cin.tie(NULL), cout.tie(NULL)
#define endl "\n"
#define ii pair<ll,ll>
#define ic pair<char,ll>
#define pb push_back
#define vi vector<ll>
#define popb pop_back
#define pf push_front
#define popf pop_front
#define all(v) (v).begin(), (v).end()
#define F first
#define S second
//#define size(x) (int)(x.size())
ll M = 1000000007;
ll i,j;
ll fac(ll x);
ll inv_fac(ll x);
ll binexp(ll a,ll b);

ll fac(ll x)
{
    ll fcto=1;
    for(ll i=2;i<=x;i++)
    {
        fcto*=i;
        fcto%=M;
    }
    return fcto;
}
ll inv_fac(ll x)
{
    return binexp(fac(x),M-2);
}
ll binexp(ll a,ll b)
{
    if(a==0||a==1) return a;
    if(b==0)  return 1;
    ll ret= binexp(a,b/2);
    if(b%2) return (((ret*ret)%M)*a)%M;
    else return (ret*ret)%M;
}

bool sortbysecdesc(const pair<int,int> &a,
                   const pair<int,int> &b)
{
       return a.second>b.second;
}
ll isPrime(ll n)
{   if (n <= 3)  return (1);
    if (n%2 == 0 || n%3 == 0) return (0);
    for ( i=5; i*i<=n; i=i+6)
        if (n%i == 0 || n%(i+2) == 0)
           return (0);

    return (1);
}
ll smallestDivisor(ll n)
{
    // if divisible by 2
    if (n % 2 == 0)
        return 2;

    // iterate from 3 to sqrt(n)
    for ( i = 3; i * i <= n; i += 2) {
        if (n % i == 0)
            return i;
    }

    return n;
}
long long maxPrimeFactors(long long n)
{
    long long maxPrime = -1;
    while (n % 2 == 0) {
        maxPrime = 2;
        n >>= 1;
    }
    for ( i = 3; i <= sqrt(n); i += 2) {
        while (n % i == 0) {
            maxPrime = i;
            n = n / i;
        }
    }
    if (n > 2)
        maxPrime = n;
    return maxPrime;
}
ll countDivisors(ll n)
{
    ll cnt = 0;
    for ( i = 1; i <= sqrt(n); i++) {
        if (n % i == 0) {
            if (n / i == i)
                cnt++;

            else
                cnt = cnt + 2;
        }
    }
    return cnt;
}
//Merging two sets in cpp: merge(a.begin(), a.end(), b.begin(), b.end(), inserter(m, m.end()));
int main()
{
    fast;
    ll tt=1;
    //cin>>tt;
    while(tt--)
    {
      ll n;
      cin>>n;
      ll a[n];
      map<ll,ll>mp;
      for(i=0;i<n;i++)
      {
          cin>>a[i];
          a[i]=a[i]%200;
          mp[a[i]]++;
      }
      map<ll,ll>:: iterator itr;
      ll sum=0;
      for(itr=mp.begin();itr!=mp.end();itr++)
      {
          if(itr->S>1)
          {
              sum+=(itr->S)*(itr->S-1)/2;
          }
      }
      cout<<sum<<"\n";


    }
}

//
//  main.cpp
//  1014 . 打地鼠
//
//  Created by Paul Liao on 2021/5/6.
//

#include <iostream>
#include<map>
#define ll long long
#define AC ios::sync_with_stdio(0);cin.tie(0)
#define endl "\n";
#define FOR(i,a,b) for(int i=a;i<b;i++)
using namespace std;
ll x[20],MOD=1e9+7,haha[2]={(ll)1e9+7,(ll)1e9+9};
ll fpow(ll x,ll y){
    ll now,r;
    r=1;
    now=x;
    while(y){
        if(y%2){
            r*=now;
            r%=MOD;
        }
        now*=now;
        now%=MOD;
        y/=2;
    }
    return r;
}
int main() {
    AC;
    ll n,a[200005],ans=0;
    map<int,int> num;
    cin>>n;
    FOR(i,0,n){
        cin>>a[i];
        ans+=num[a[i]%200];
        num[a[i]%200]++;
    }
    cout<<ans<<endl;
    return 0;
}
