#include <bits/stdc++.h>
using namespace std;
string S;
map<int, int> SS;
int ctoi(char c) {
  int cnt = c - 'a';
  return (1 << cnt);
}
int main() {
  cin >> S;
  int N = S.size();
  int cnt[26];
  fill(cnt, cnt + 26, 0);
  for (auto x : S) {
    cnt[x - 'a']++;
  }
  bool ok = true;
  for (auto i = 0; i < 26; ++i) {
    if (cnt[i] % 2 != 0) ok = false;
  }
  if (ok) {
    cout << 1 << endl;
    return 0;
  }
  int dp[200010];
  dp[0] = 0;
  int now = 0;
  SS[now] = 0;
  for (auto i = 1; i <= N; ++i) {
    now = now ^ ctoi(S[i - 1]);
    dp[i] = dp[i - 1] + 1;
    if (SS.find(now) != SS.end()) {
      dp[i] = min(dp[i], dp[SS[now]] + 1);
    } else {
      SS[now] = i;
    }
    for (auto j = 0; j < 26; ++j) {
      int twd = now ^ (1 << j);
      if (SS.find(twd) != SS.end()) {
        dp[i] = min(dp[i], dp[SS[twd]] + 1);
      }
    }
  }
  cout << dp[N] << endl;
}
