#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll inf=1e15,N=2e5+5;
#define pb push_back
#define ff first
#define ss second
#define pii pair<ll,ll>
ll bit[N];
void update(ll x,ll val)
{
for(;x<N;x+=x&-x)
bit[x]+=val;
}
ll get(ll x)
{
ll ans=0;
for(;x>0;x-=x&-x)
ans+=bit[x];
return ans;
}
int main() {
ll n,i,j;
string s;
cin >> n >> s;
vector<ll>pos[26];
for(i=0;i<n;i++)
pos[s[i]-'a'].pb(i);
ll a[n],ps[26]={0};
reverse(s.begin(),s.end());
for(i=0;i<s.size();i++)
{
ll in=s[i]-'a';
ll ind=pos[in][ps[in]];
a[ind]=i+1;
ps[in]++;
}
/*for(i=0;i<n;i++)
cout << a[i] <<" ";*/
ll ans=0;
for(i=n-1;i>=0;i--)
{
ans+=get(a[i]);
update(a[i],1);
}
cout << ans;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBsb25nIGxvbmcgbGw7CmNvbnN0IGxsIGluZj0xZTE1LE49MmU1KzU7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgZmYgZmlyc3QKI2RlZmluZSBzcyBzZWNvbmQKI2RlZmluZSBwaWkgcGFpcjxsbCxsbD4KCmxsIGJpdFtOXTsKCnZvaWQgdXBkYXRlKGxsIHgsbGwgdmFsKQp7Cglmb3IoO3g8Tjt4Kz14Ji14KQoJCWJpdFt4XSs9dmFsOwp9CgpsbCBnZXQobGwgeCkKewoJbGwgYW5zPTA7Cglmb3IoO3g+MDt4LT14Ji14KQoJCWFucys9Yml0W3hdOwoJcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKSB7CglsbCBuLGksajsKCXN0cmluZyBzOwoJY2luID4+IG4gPj4gczsKCXZlY3RvcjxsbD5wb3NbMjZdOwoJZm9yKGk9MDtpPG47aSsrKQoJCXBvc1tzW2ldLSdhJ10ucGIoaSk7CglsbCBhW25dLHBzWzI2XT17MH07CglyZXZlcnNlKHMuYmVnaW4oKSxzLmVuZCgpKTsKCWZvcihpPTA7aTxzLnNpemUoKTtpKyspCgl7CgkJbGwgaW49c1tpXS0nYSc7CgkJbGwgaW5kPXBvc1tpbl1bcHNbaW5dXTsKCQlhW2luZF09aSsxOwoJCXBzW2luXSsrOwoJfQoJLypmb3IoaT0wO2k8bjtpKyspCgkJY291dCA8PCBhW2ldIDw8IiAiOyovCglsbCBhbnM9MDsKCWZvcihpPW4tMTtpPj0wO2ktLSkKCXsKCQlhbnMrPWdldChhW2ldKTsKCQl1cGRhdGUoYVtpXSwxKTsKCX0KCWNvdXQgPDwgYW5zOwoJCnJldHVybiAwOwp9