#include<bits/stdc++.h>
using namespace std;
char abc[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
bool proveri(char a[],int n)
{
    for(int i=0;i<n-1;i++)
        if(a[i]>a[i+1])
            return false;
    return true;
}
int pronadji(string s,char x,int p)
{
    int n=s.size();
    for(int i=p;i<n;i++){
        if(s.at(i)==x)
            return i;
    }
    return -1;
}
int pronadjiZadnjeg(string s,char x)
{
    int n=s.size();
    for(int i=n;i>=0;i--){
        if(s.at(i)==x)
            return i;
    }
    return -1;
}
bool proveraSvih(string s)
{
    int n=s.size(),p;
    p=pronadji(s,'A',0);
    for(int i=1;i<26;i++)
    {
        p=pronadji(s,abc[i],p);
        if(p==-1)
            return false;
    }
    return true;
}
bool proveraBez(char a[],int n,int x)
{
    for(int i=0;i<n-1;i++)
        if(i!=x)
            if(a[i]>a[i+1])
                return false;
    return true;
}
char nadjiUljeza(char a[],int n)
{
    for(int i=0;i<n-1;i++)
        if(a[i]>=a[i+1])
            return i;
}
string nepotreban(string in,char x,int poz)
{
    int n=in.size();
    if(pronadjiZadnjeg(in,abc[poz-1])<poz)
        in.erase(poz,1);
    return in;
}
int brojPreklopa(string in,int n){
    int b=0;
    for(int i=0;i<n-1;i++)
        if(in.at(i)-in.at(i+1)==1) b++;
    return b;
}
long long interval(string in,int b[]){
    int n=in.size();
    long long uk=1;
    for(int i=0;i<n;i++)
        in=nepotreban(in,in.at(i),i);
    for(int i=0;i<n;i++)
        uk*=b[i];
    uk-=brojPreklopa(in,n);
    return uk;
}
int main(){
    int n;
    cin>>n;
    char a[n];
    int uljez;
    for(int i=0;i<n;i++)
        cin>>a[i];
    if(n<=26) cout<<0;
    else if(n==27){
        uljez=nadjiUljeza(a,n);
        if(proveraBez(a,n,uljez)) cout<<1;
        else cout<<0;
    }
    else{
        int s=0,k=25,pom=k,zbir=0;
        while(s!=n-1)
        {
            string in=" ";
            int b[26]={0};
            for(int i=s;i<k+1;i++)
                b[a[i]-'A']++;
            for(int i=s;i<k+1;i++)
                in+=a[i];
            while(!proveraSvih(in))
            {
                pom=k;
                k=pronadji(in,'A',k+1)-1;
                if(k==-1) break;
                for(int i=pom;i<k+1;i++){
                    in+=a[i];
                    b[a[i]-'A']++;
                }
            }
            s=k;
            zbir+=interval(in,b);
        }
        cout<<zbir;
    }
    return 0;
}