s = gets.chomp.split("")#.mayy&:to_i)
S = s
MEMO = Array.new(s.size)

ptl = 0

def tree_search(pos)
  return 0 if pos == S.size
  return MEMO[pos] if MEMO[pos]
  min = S.size-1-pos
  a = Array.new(26).map{0}
  #p 
  for i in 0..(S.size-1-pos)
    a[S[pos+i].ord-97] += 1
    tmp = tree_search(pos+i+1) if a.select{|t| t%2==1}.size == 1
    min = tmp if tmp < min
  end
  return 1 if a.select{|t| t %2 == 1}.size==0
  MEMO[pos] = min+1 
  return min + 1
end

p tree_search(0)
