#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 200020;
int largest[1 << 26];
int getRes(const string& s) {
  for (int i = 0; i < (1 << 26); ++i) {
    largest[i] = -1;
  }
  int currMask = 0;
  for (int i = 0; i < (int)s.size(); ++i) {
    int bit = s[i] - 'a';
    currMask ^= 1 << bit;
    largest[currMask] = i;
  }
  int res = 0;
  int offsetMask = 0;
  int i = 0;
  while (i < (int)s.size()) {
    int best = largest[offsetMask];
    int usedChar = -1;
    for (int c = 0; c < 26; ++c) {
      if (best < largest[(1 << c) ^ offsetMask]) {
        best = largest[(1 << c) ^ offsetMask];
        usedChar = c;
      }
    }
    res++;
    if (usedChar != -1) {
      offsetMask ^= 1 << usedChar;
    }
    i = best + 1;
  }
  return res;
}
int main() {
  ios::sync_with_stdio(false);
  string s;
  cin >> s;
  int res = getRes(s);
  reverse(s.begin(), s.end());
  res = min(res, getRes(s));
  cout << res << endl;
  return 0;
}
