#include #include using namespace std; string s; int cnt[5005]; bool dp[5005][5005]; int main() { cin >> s; int n = s.size(); for (int i = 0; i < n; i++) dp[i][i] = dp[i][i + 1] = true; for (int i = 2; i <= n; i++) { for (int l = 0; l <= n - i; l++) { int r = l + i; if (dp[l + 1][r - 1] && s[l] == s[r - 1]) dp[l][r] = true; } } for (int i = 1; i <= n; i++) { for (int j = i + 1; j <= n; j++) { if (dp[0][i] && dp[i][j]) cnt[j]++; } } long long ret = 0; for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { if (dp[j][n]) ret += cnt[i]; } } cout << ret << endl; return 0; }