#include <bits/stdc++.h>
int comp(const void* a, const void* b) { return *(int*)a - *(int*)b; }
char str[200001];
int a[200001];
int dp[200001];
int mem[1 << 26];
int main(void) {
  int len, S, i, j;
  scanf("%s", str);
  len = strlen(str);
  for (i = (0); i < (len); i++) {
    a[i + 1] = a[i] ^ (1 << (str[i] - 'a'));
    dp[i + 1] = 100000000;
  }
  for (i = (1); i < (1 << 26); i++) mem[i] = 100000000;
  for (i = (1); i < (len + 1); i++) {
    if (a[i] == 0 || a[i] == 1)
      dp[i] = 1;
    else
      dp[i] = mem[a[i]] + 1;
    for (j = (0); j < (26); j++) {
      dp[i] =
          (((dp[i]) < (mem[a[i] ^ (1 << j)] + 1)) ? (dp[i])
                                                  : (mem[a[i] ^ (1 << j)] + 1));
    }
    mem[a[i]] = dp[i];
  }
  printf("%d\n", dp[len]);
  return 0;
}
