#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const int INF = 1000000001;
const long long LINF = 1000000000000000001LL;
int main() {
  ios_base::sync_with_stdio(0);
  string s;
  cin >> s;
  int n = (int)(s).size();
  vector<int> dp(n + 1, n);
  dp[0] = 0;
  int mask = 0;
  map<int, int> firstForMask;
  const int ALPH = 'z' - 'a' + 1;
  firstForMask[0] = 0;
  for (long long i = (1); i <= (n); ++i) {
    mask ^= 1 << (s[i - 1] - 'a');
    if (firstForMask.count(mask)) {
      dp[i] = min(dp[i], 1 + dp[firstForMask[mask]]);
    }
    for (long long bit = (0); bit <= (ALPH - 1); ++bit) {
      int other = mask ^ (1 << bit);
      if (firstForMask.count(other)) {
        dp[i] = min(dp[i], 1 + dp[firstForMask[other]]);
      }
    }
    if (!firstForMask.count(mask)) {
      firstForMask[mask] = i;
    }
  }
  cout << dp[n];
  return 0;
}
