#include <bits/stdc++.h>
using namespace std;
// Complete the substrCount function below.
long substrCount(int n, string s) {
long int length_sub = 2;
long int count = n;
while(length_sub <= n){
for(long int i = 0; i <= n - length_sub ; i++){
string sub = s.substr(i, length_sub);
//cout << sub << " ";
string rev_sub(sub);
reverse(rev_sub.begin(), rev_sub.end());
//cout << rev_sub;;
char c = sub[0];
int flag = 0;
for(long int j = 0; j < sub.length() / 2; j++){
if(sub[j] != c || rev_sub[j] != c){
flag = 1;
break;
}
}
if(flag == 0){
//cout << " - Special\n";
count++;
}
// else{
// cout << "\n";
// }
}
length_sub++;
}
return count;
}
int main()
{
int n;
cin >> n;
cin.ignore(numeric_limits<streamsize>::max(), '\n');
string s;
getline(cin, s);
long result = substrCount(n, s);
cout << result << "\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gQ29tcGxldGUgdGhlIHN1YnN0ckNvdW50IGZ1bmN0aW9uIGJlbG93Lgpsb25nIHN1YnN0ckNvdW50KGludCBuLCBzdHJpbmcgcykgewoKICAgIGxvbmcgaW50IGxlbmd0aF9zdWIgPSAyOwogICAgbG9uZyBpbnQgY291bnQgPSBuOwogICAgd2hpbGUobGVuZ3RoX3N1YiA8PSBuKXsKICAgICAgICBmb3IobG9uZyBpbnQgaSA9IDA7IGkgPD0gbiAtIGxlbmd0aF9zdWIgOyBpKyspewogICAgICAgICAgICBzdHJpbmcgc3ViID0gcy5zdWJzdHIoaSwgbGVuZ3RoX3N1Yik7CiAgICAgICAgICAgIC8vY291dCA8PCBzdWIgPDwgIiAiOwogICAgICAgICAgICBzdHJpbmcgcmV2X3N1YihzdWIpOwogICAgICAgICAgICByZXZlcnNlKHJldl9zdWIuYmVnaW4oKSwgcmV2X3N1Yi5lbmQoKSk7CiAgICAgICAgICAgIC8vY291dCA8PCByZXZfc3ViOzsKICAgICAgICAgICAgY2hhciBjID0gc3ViWzBdOwogICAgICAgICAgICBpbnQgZmxhZyA9IDA7CiAgICAgICAgICAgIGZvcihsb25nIGludCBqID0gMDsgaiA8IHN1Yi5sZW5ndGgoKSAvIDI7IGorKyl7CiAgICAgICAgICAgICAgICBpZihzdWJbal0gIT0gYyB8fCByZXZfc3ViW2pdICE9IGMpewogICAgICAgICAgICAgICAgICAgIGZsYWcgPSAxOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGZsYWcgPT0gMCl7CiAgICAgICAgICAgICAgICAvL2NvdXQgPDwgIiAtIFNwZWNpYWxcbiI7CiAgICAgICAgICAgICAgICBjb3VudCsrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGVsc2V7CiAgICAgICAgICAgIC8vICAgICBjb3V0IDw8ICJcbiI7CiAgICAgICAgICAgIC8vIH0KICAgICAgICB9CiAgICAgICAgbGVuZ3RoX3N1YisrOwogICAgfQogICAgcmV0dXJuIGNvdW50OwoKfQoKaW50IG1haW4oKQp7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGNpbi5pZ25vcmUobnVtZXJpY19saW1pdHM8c3RyZWFtc2l6ZT46Om1heCgpLCAnXG4nKTsKCiAgICBzdHJpbmcgczsKICAgIGdldGxpbmUoY2luLCBzKTsKCiAgICBsb25nIHJlc3VsdCA9IHN1YnN0ckNvdW50KG4sIHMpOwoKICAgIGNvdXQgPDwgcmVzdWx0IDw8ICJcbiI7CgogICAgcmV0dXJuIDA7Cn0K