#include <bits/stdc++.h>
using namespace std;
const long long MaxN = 1e5 + 5;
string s;
long long prefix[MaxN][30],ans=0,m;
int main()
{
freopen("file.inp", "r", stdin);
freopen("file.ans", "w", stdout);
cin >> s;
m=s.size();
s=" " + s;
for (long long i=1; i<=m; i++)
{
for (long long j=1; j<=26;j++)
{
prefix[i][j]=prefix[i-1][j];
if(j==s[i]-'a'+1)
{
prefix[i][j]++;
}
}
}
for (long long len =1; len<=m/2; len++)
{
for (long long l=1; l+2*len-1<=m; l++)
{
bool check = true;
for (long long i=1; i<=26; i++)
{
long long t_1=prefix[l+len-1][i]-prefix[l-1][i];
long long t_2=prefix[l+2*len-1][i]-prefix[l+len-1][i];
if(!((t_1>0&&t_2>0)||(t_1==0&&t_2==0)))
{
check = false;
}
}
if(check)
{
ans++;
}
}
}
cout << ans;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBNYXhOID0gMWU1ICsgNTsKc3RyaW5nIHM7CmxvbmcgbG9uZyBwcmVmaXhbTWF4Tl1bMzBdLGFucz0wLG07CmludCBtYWluKCkKewogICAgZnJlb3BlbigiZmlsZS5pbnAiLCAiciIsIHN0ZGluKTsKICAgIGZyZW9wZW4oImZpbGUuYW5zIiwgInciLCBzdGRvdXQpOwogICAgY2luID4+IHM7CiAgICBtPXMuc2l6ZSgpOwogICAgcz0iICIgKyBzOwogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1tOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgaj0xOyBqPD0yNjtqKyspCiAgICAgICAgewogICAgICAgICAgICBwcmVmaXhbaV1bal09cHJlZml4W2ktMV1bal07CiAgICAgICAgICAgIGlmKGo9PXNbaV0tJ2EnKzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHByZWZpeFtpXVtqXSsrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZm9yIChsb25nIGxvbmcgbGVuID0xOyBsZW48PW0vMjsgbGVuKyspCiAgICB7CiAgICAgICAgZm9yIChsb25nIGxvbmcgbD0xOyBsKzIqbGVuLTE8PW07IGwrKykKICAgICAgICB7CiAgICAgICAgICAgIGJvb2wgY2hlY2sgPSB0cnVlOwogICAgICAgICAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PTI2OyBpKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxvbmcgbG9uZyB0XzE9cHJlZml4W2wrbGVuLTFdW2ldLXByZWZpeFtsLTFdW2ldOwogICAgICAgICAgICAgICAgbG9uZyBsb25nIHRfMj1wcmVmaXhbbCsyKmxlbi0xXVtpXS1wcmVmaXhbbCtsZW4tMV1baV07CiAgICAgICAgICAgICAgICBpZighKCh0XzE+MCYmdF8yPjApfHwodF8xPT0wJiZ0XzI9PTApKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjaGVjayA9IGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGNoZWNrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBhbnMrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGNvdXQgPDwgYW5zOwp9Cg==