#include<bits/stdc++.h>
using namespace std;
bool b[8005][8005];
vector<int>L[8005],R[8005];
string s;int n,ans;
struct node{int l,r;};
queue<node>q;
void Push(int ll,int rr){
if(!b[ll][rr]){
L[ll].push_back(rr);
R[rr].push_back(ll);
q.push((node){ll,rr});
b[ll][rr]=1;
}
}
int main(){
cin>>n>>s;
for(int i=1;i<n;i++)if(s[i]==s[i-1])Push(i-1,i);
while(!q.empty()){
node f=q.front();q.pop();
int l=f.l,r=f.r;
ans++;
if(l!=0&&r!=n-1)if(s[l-1]==s[r+1])Push(l-1,r+1);
if(l!=0)for(int ll:R[l-1]) Push(ll,r);
if(r!=n)for(int rr:L[r+1]) Push(l,rr);
}
cout<<ans;
return 0;
}