#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[200005];
ll b[200005];
ll n;
void g(ll*x,ll i,ll v)
{
for(i++;i<=n;i+=i&(-i))
{
x[i]+=v;
}
}
ll h(ll*x,ll i)
{
ll s=0;
for(i++;i>0;i-=i&(-i))
{
s+=x[i];
}
return s;
}
void f()
{
ll m;
cin>>m;
string s;
cin>>s;
ll l=2*m;
vector<vector<ll>>p(26);
for(ll i=0;i<l;i++)
{
p[s[i]-'a'].push_back(i);
}
vector<pair<ll,ll>>k;
for(ll c=0;c<26;c++)
{
ll t=p[c].size();
if(t==0)
{
continue;
}
ll z=t/2;
for(ll j=0;j<z;j++)
{
k.push_back({p[c][j],p[c][z+j]});
}
}
sort(k.begin(),k.end());
ll u=k.size();
vector<ll>v;
for(auto&x:k)
{
v.push_back(x.first);
v.push_back(x.second);
}
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
n=(ll)v.size()+1;
ll r=0;
for(ll i=0;i<n+2;i++)
{
a[i]=0;
b[i]=0;
}
for(ll i=u-1;i>=0;i--)
{
ll q=(ll)(lower_bound(v.begin(),v.end(),k[i].first)-v.begin());
ll w=(ll)(lower_bound(v.begin(),v.end(),k[i].second)-v.begin());
ll e=u-1-i;
r+=e-h(a,w);
if(w>0)
{
r+=h(b,w-1);
}
g(a,q,1);
g(b,w,1);
}
cout<<r<<endl;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
ll t=1;
while(t--)
{
f();
}
return 0;
}