#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char str[52];
cin>>str;
int len= strlen(str);
int i,j,cnt=0;
int a[len+2][len+2];
for(i=0;i<=len+1;i++)
{
for(j=0;j<=len+1;j++)
a[i][j]=0;
}
for(i=0;i<len;i++)
a[i][i]=1;
int c=0;
for(i=0;i<len-1;i++)
{
if(str[i]== str[i+1])
a[i][i+1]=3;
else
a[i][i+1]=2;
}
for(i=len-1;i>=0;i--)
{
for(j=i+2;j<len;j++)
{
a[i][j]=a[i][j-1];
if(str[i]== str[j])
{
a[i][j]++;
a[i][j]+= a[i+1][j-1];
}
a[i][j]+= a[i+1][j];
}
}
/* for(i=0;i<len;i++)
{
for(j=i;j<len;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
*/
cout<<a[0][len-1]<<endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CgljaGFyIHN0cls1Ml07CgljaW4+PnN0cjsKCWludCBsZW49IHN0cmxlbihzdHIpOwoJaW50IGksaixjbnQ9MDsKCWludCBhW2xlbisyXVtsZW4rMl07Cglmb3IoaT0wO2k8PWxlbisxO2krKykKCXsKCSAgICBmb3Ioaj0wO2o8PWxlbisxO2orKykKCSAgICAgYVtpXVtqXT0wOwoJfQoJCglmb3IoaT0wO2k8bGVuO2krKykKCSBhW2ldW2ldPTE7CglpbnQgYz0wOwoJCglmb3IoaT0wO2k8bGVuLTE7aSsrKQoJewoJCWlmKHN0cltpXT09IHN0cltpKzFdKQoJCSBhW2ldW2krMV09MzsKCQkgZWxzZQoJCSBhW2ldW2krMV09MjsKCX0KCglmb3IoaT1sZW4tMTtpPj0wO2ktLSkKCXsKCQlmb3Ioaj1pKzI7ajxsZW47aisrKQoJCXsKCQkJYVtpXVtqXT1hW2ldW2otMV07CgkJCWlmKHN0cltpXT09IHN0cltqXSkKCQkJewoJCQkJYVtpXVtqXSsrOwoJCQkJYVtpXVtqXSs9IGFbaSsxXVtqLTFdOwoJCQl9CgkJCWFbaV1bal0rPSBhW2krMV1bal07CgkJfQoJfQoJCi8qCWZvcihpPTA7aTxsZW47aSsrKQoJewoJCWZvcihqPWk7ajxsZW47aisrKQoJCSBjb3V0PDxhW2ldW2pdPDwiICI7CgkJIAoJCSBjb3V0PDxlbmRsOwoJfQoqLwkKCWNvdXQ8PGFbMF1bbGVuLTFdPDxlbmRsOwoJCiAgICByZXR1cm4gMDsKfQ==