#include <bits/stdc++.h>
using namespace std;
string S;
int N;
vector<int> pxor;
int chk[1 << 26];
vector<vector<int> > cc;
int dp(int n, int t) {
  if (n == N) return 0;
  int &ret = cc[n][t];
  if (ret != -1) return ret;
  ret = 1e9;
  if (chk[pxor[n]] > n) ret = min(ret, t + dp(chk[pxor[n]], 0));
  for (int i = 0; i < 26; i++) {
    if (chk[pxor[n] ^ (1 << i)] > n)
      ret = min(ret, 1 + dp(chk[pxor[n] ^ (1 << i)], 0));
  }
  return ret;
}
int main() {
  cin >> S;
  N = S.size();
  pxor.resize(N);
  for (int i = N - 1; i >= 0; i--) {
    pxor[i] = (1 << (S[i] - 'a'));
    if (i != N - 1) pxor[i] ^= pxor[i + 1];
  }
  memset(chk, -1, sizeof(chk));
  chk[0] = N;
  for (int i = N - 1; i >= 0; i--) {
    if (chk[pxor[i]] == -1) chk[pxor[i]] = i;
  }
  cc = vector<vector<int> >(N, vector<int>(2, -1));
  printf("%d", dp(0, 1));
}
