#include <bits/stdc++.h>
using namespace std;
int DP[1 << 27];
int PosDP[500000];
int main() {
  string s;
  cin >> s;
  memset(DP, -1, sizeof(DP));
  int cur_mask = 0;
  DP[0] = 0;
  int n = s.size();
  for (int i = 0; i < n; ++i) {
    int norm = s[i] - 'a';
    cur_mask ^= (1 << norm);
    PosDP[i] = DP[cur_mask];
    for (int a = 0; a <= 26; ++a) {
      int nw_mask = cur_mask;
      nw_mask ^= (1 << norm);
      if (DP[nw_mask] != -1) {
        if (PosDP[i] == -1 or PosDP[i] > 1 + DP[nw_mask])
          PosDP[i] = 1 + DP[nw_mask];
      }
    }
    DP[cur_mask] = max(DP[cur_mask], PosDP[i]);
  }
  cout << PosDP[n - 1] << endl;
  return 0;
}
