package main
import "fmt"
func solution(str string) int {
dp := make([][]int, len(str))
for i := range dp {
dp[i] = make([]int, len(str))
}
for row := len(str) - 1; row >= 0; row-- {
dp[row][row] = 1
for col := row + 1; col < len(str); col++ {
//str[row] = str[col]
if str[row] == str[col] {
dp[row][col] = dp[row+1][col-1] + 2
} else {
dp[row][col] = max(dp[row+1][col], dp[row][col-1])
}
}
}
return dp[0][len(str)-1]
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func main() {
//str := "abccsb" //结果4
var str string
fmt.Scanln(&str)
fmt.Println(solution(str))
}