#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
const int a = 26;
int main() {
string s;
cin >> s;
int n = s.size();
vector<vector<int>> p(n + 1, vector<int>(a, 0));
for (int i = 1; i <= n; ++i) {
for (int c = 0; c < a; ++c) {
p[i][c] = p[i - 1][c];
}
p[i][s[i - 1] - 'a']++;
}
vector<vector<int>> dp(n + 1, vector<int>(n + 1, 0));
for (int i = 1; i <= n; ++i) {
dp[i][1] = 1;
for (int j = 2; j <= i; ++j) {
dp[i][j] = dp[i - 1][j - 1];
for (int c = 0; c < a; ++c) {
int count = p[i][c] - p[i - j][c];
if (count > 0 && count <= j / 2) {
dp[i][j] += dp[i - 1][j - 1];
}
}
}
}
int r = 0;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= i; ++j) {
r += dp[i][j];
}
}
cout << r << endl;
return 0;
}