#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=510;
const int mod=1e9;
string s;
int f[N][N];
ll dp(int l,int r){
if(l>r) return 0;
if(l==r) return f[l][r]=1;
if(f[l][r]!=-1) return f[l][r];
f[l][r]=0;
if(s[l]==s[r]){
for(int k=l+1;k+1<=r;k++){
f[l][r]=(f[l][r]+dp(l+1,k)%mod*dp(k+1,r)%mod)%mod;
}
}
return f[l][r];
}
int main(){
cin>>s;
int n=s.length();
memset(f,-1,sizeof f);
printf("%lld\n",dp(0,n-1));
return 0;
}