#include <bits/stdc++.h>
using namespace std;
char buff[(int)2e6 + 17];
const long long inf = (long long)1e9 + 7ll;
const int maxn = (int)1e5 + 17;
int n;
string s;
int ps[maxn];
bool read() {
  if (scanf("%s", buff) != 1) return false;
  return true;
}
void solve() {
  s = buff;
  n = static_cast<int>(s.size());
  s = "#" + s;
  unordered_map<int, int> dp;
  dp.rehash(2281488);
  dp[0] = 0;
  for (int i = 1; i <= n; ++i) {
    ps[i] = ps[i - 1] ^ (1 << (s[i] - 'a'));
    if (!dp.count(ps[i])) dp[ps[i]] = inf;
    for (int j = 0; j < 26; ++j) {
      auto t = ps[i] ^ (1 << j);
      if (dp.count(t)) dp[ps[i]] = min(dp[ps[i]], dp[t] + 1);
    }
  }
  printf("%d\n", max(1, dp[ps[n]]));
}
int main() {
  while (read()) solve();
  return 0;
}
