#include <bits/stdc++.h>
using namespace std;
int read() {
  char c;
  int s = 0, t = 1;
  while (!isdigit(c = getchar()))
    if (c == '-') t = -1;
  do {
    s = s * 10 + c - '0';
  } while (isdigit(c = getchar()));
  return s * t;
}
int min(int a, int b) { return a < b ? a : b; }
int max(int a, int b) { return a < b ? b : a; }
int abs(int x) { return x > 0 ? x : -x; }
void mins(int &a, int b) {
  if (a > b) a = b;
}
void maxs(int &a, int b) {
  if (a < b) a = b;
}
const int inf = 0x3f3f3f3f, maxn = 100010, maxN = 70000010;
int n, p[maxN], f[maxn], sum;
char s[maxn];
int main() {
  scanf("%s", s + 1);
  n = strlen(s + 1);
  f[0] = 0;
  memset(p, 0x3f, sizeof(p));
  p[0] = 0;
  for (int i = 1; i <= n; i++) {
    int x = 1 << (s[i] - 'a');
    sum ^= x;
    f[i] = inf;
    f[i] = min(f[i], p[sum] + 1);
    for (int j = 0; j < 26; j++) f[i] = min(f[i], p[sum ^ (1 << j)] + 1);
    p[sum] = min(p[sum], f[i]);
  }
  printf("%d", f[n]);
  return 0;
}
