#include <bits/stdc++.h>
using namespace std;
string s;
unordered_map<int, int> M;
int dp[200010];
int main() {
  ios::sync_with_stdio(false);
  cin >> s;
  int stat = 0;
  int l = s.length();
  M[0] = 0;
  for (int i = 0; i < l; i++) {
    stat ^= (1 << (s[i] - 'a'));
    int mi = l;
    auto k = M.find(stat);
    if (k == M.end())
      M[stat] = i + 1;
    else
      mi = min(mi, k->second);
    for (int j = 0; j < 26; j++) {
      k = M.find(stat ^ (1 << j));
      if (k != M.end()) mi = min(mi, k->second);
    }
    dp[i + 1] = dp[mi] + 1;
  }
  cout << dp[l] << endl;
  return 0;
}
