# 14517번. 팰린드롬 개수 구하기 (Large)
importsysinput=sys.stdin.readline# 참고 블로그 : https://www.crocus.co.kr/869
# dp[a][b] : a에서 b까지 인덱스의 단어중
# 팰린드롬이 되는 가짓수
s=input().rstrip()dp=[[0foriinrange(1005)]foriinrange(1005)]mod=10007# 일단 기본적인 전처리
foriinrange(len(s)):# 한 글자 (a)
dp[i][i]=1ifi!=len(s)-1:# aa -> a, a, aa
ifs[i]==s[i+1]:dp[i][i+1]=3# ab -> a, b
else:dp[i][i+1]=2foriinrange(len(s)):forleftinrange(len(s)):right=left+i# left <- i만큼의 길이 -> right
ifright>=len(s):break# 위의 블로그 참고
dp[left][right]=dp[left+1][right]+ \
dp[left][right-1]-dp[left+1][right-1]# 음수가 되는 경우
ifdp[left][right]<0:dp[left][right]+=mod# 블로그 참고
ifs[left]==s[right]:dp[left][right]+=dp[left+1][right-1]+1dp[left][right]%=modprint(dp[0][len(s)-1]%10007)