#include <bits/stdc++.h>
using namespace std;
char s[4000];
long long l[4000];
long long par_sum[4000];
int main(void) {
  scanf("%s", &s);
  string a = (string)s;
  memset(l, 0, sizeof(l));
  for (int i = 0; i < a.length(); i++) {
    for (int j = 0; j < a.length(); j++) {
      if (((i - j) >= 0) && ((i + j) < a.length())) {
        if (a[i - j] == a[i + j]) {
          l[i - j]++;
        } else
          break;
      } else
        break;
    }
    for (int j = 0; j < a.length(); j++) {
      if (((i - j) >= 0) && ((i + j + 1) < a.length())) {
        if (a[i - j] == a[i + j + 1])
          l[i - j]++;
        else
          break;
      } else
        break;
    }
  }
  par_sum[a.length()] = 0;
  for (int i = a.length() - 1; i >= 0; i--) par_sum[i] = par_sum[i + 1] + l[i];
  long long ans = 0;
  for (int i = 0; i < a.length(); i++) {
    for (int j = 0; j < a.length(); j++) {
      if (((i - j) >= 0) && ((i + j) < a.length())) {
        if (a[i - j] == a[i + j]) {
          ans += par_sum[i + j + 1];
        } else
          break;
      } else
        break;
    }
    for (int j = 0; j < a.length(); j++) {
      if (((i - j) >= 0) && ((i + j + 1) < a.length())) {
        if (a[i - j] == a[i + j + 1])
          ans += par_sum[i + j + 2];
        else
          break;
      } else
        break;
    }
  }
  printf("%I64d\n", ans);
  return 0;
}
