#include <bits/stdc++.h>
using namespace std;
inline long long ri() {
  long long x;
  scanf("%lld", &x);
  return x;
}
template <typename T>
inline bool smax(T& a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <typename T>
inline bool smin(T& a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
int c[1 << 26], t[1 << 26];
int n;
int main() {
  string s;
  ios::sync_with_stdio(false);
  cin >> s;
  n = s.length();
  for (int i = 0; i < (1 << 26); i++) c[i] = n;
  c[0] = 0;
  t[0] = 0;
  int mask = 0;
  for (int i = 0; i < (n); i++) {
    mask ^= 1 << (s[i] - 'a');
    for (int j = 0; j < (26); j++) {
      int tmask = mask ^ (1 << j);
      if (c[tmask] < n) {
        if (smin(c[mask], c[tmask] + 1)) t[mask] = i;
      }
    }
  }
  int res = n;
  if (t[mask] != n - 1) {
    res = c[mask] + 1;
    for (int j = 0; j < (26); j++) {
      int tmask = mask ^ (1 << j);
      smin(res, c[tmask] + 1);
    }
    smin(res, c[mask] + 1);
  } else {
    res = c[mask];
  }
  cout << res << endl;
  return 0;
}
