#include <bits/stdc++.h>
using namespace std;
const int Q = 200007;
char v[Q];
int n;
map<int, int> mp;
int main() {
  cin >> v + 1;
  n = strlen(v + 1);
  mp[0] = 1;
  int act = 0;
  int best;
  for (int i = 1; i <= n; i++) {
    act ^= (1 << (v[i] - 'a'));
    best = i;
    if (mp[act] != 0) best = mp[act];
    for (int poz = 0; poz < 26; poz++) {
      if (mp[act ^ (1 << poz)] < best && mp[act ^ (1 << poz)] != 0)
        best = mp[act ^ (1 << poz)];
    }
    if (mp[act] == 0 || mp[act] > best + 1) mp[act] = best + 1;
  }
  cout << best;
  return 0;
}
