#include<bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5;
long long n, a[MaxN];
long long rotate_left(long long x, long long k)
{
return ((x << k) | (x >> (32-k))) & 0xFFFFFFFFLL;
}
void input()
{
cin >> n;
for (long long i=1; i<=n; i++)
{
cin >> a[i];
}
}
void solve()
{
map<long long, long long> cnt;
long long ans=0;
for (long long i=1; i<=n; i++)
{
long long mx=a[i];
for (long long j=1; j<32; j++)
{
long long x=rotate_left(a[i],j);
mx=max(mx,x);
}
ans+=cnt[mx];
cnt[mx]++;
}
cout << ans;
}
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
solve();
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU1ICsgNTsKCmxvbmcgbG9uZyBuLCBhW01heE5dOwoKbG9uZyBsb25nIHJvdGF0ZV9sZWZ0KGxvbmcgbG9uZyB4LCBsb25nIGxvbmcgaykKewogICAgcmV0dXJuICgoeCA8PCBrKSB8ICh4ID4+ICgzMi1rKSkpICYgMHhGRkZGRkZGRkxMOwp9Cgp2b2lkIGlucHV0KCkKewogICAgY2luID4+IG47CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gYVtpXTsKICAgIH0KfQoKdm9pZCBzb2x2ZSgpCnsKICAgIG1hcDxsb25nIGxvbmcsIGxvbmcgbG9uZz4gY250OwoKICAgIGxvbmcgbG9uZyBhbnM9MDsKCiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBsb25nIGxvbmcgbXg9YVtpXTsKCiAgICAgICAgZm9yIChsb25nIGxvbmcgaj0xOyBqPDMyOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBsb25nIGxvbmcgeD1yb3RhdGVfbGVmdChhW2ldLGopOwogICAgICAgICAgICBteD1tYXgobXgseCk7CiAgICAgICAgfQoKICAgICAgICBhbnMrPWNudFtteF07CiAgICAgICAgY250W214XSsrOwogICAgfQoKICAgIGNvdXQgPDwgYW5zOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKICAgIGlucHV0KCk7CiAgICBzb2x2ZSgpOwp9Cg==