#include <bits/stdc++.h>
using namespace std;
void ga(int N, int *A) {
  for (int i(0); i < N; i++) scanf("%d", A + i);
}
char s[222222];
map<int, int> L;
int N, X[222222], B, dp[222222];
int dyn(int u) {
  if (u == N) return 0;
  int &v = dp[u];
  if (~v) return v;
  v = 1 + dyn(u + 1);
  if (~X[u]) v = min(v, dyn(X[u]));
  return v;
}
int main(void) {
  scanf("%s", s), N = strlen(s), (memset(X, -1, sizeof(X))),
                  (memset(dp, -1, sizeof(dp)));
  for (int i(0); i < N + 1; i++) {
    if (L.count(B)) X[L[B]] = i;
    L[B] = i;
    if (i < N) B ^= 1 << (s[i] - 97);
  }
  if (*X == N) return puts("1"), 0;
  printf("%d\n", dyn(0));
  return 0;
}
