#include <bits/stdc++.h>
using namespace std;
const int MAXN = 200010;
string ss;
int dp[MAXN];
unordered_multimap<int, int> myhash;
int getmin(int stat) {
  int ans = MAXN;
  if (stat == 0) return 0;
  auto fd0 = myhash.equal_range(stat);
  for (auto it = fd0.first; it != fd0.second; it++)
    ans = min(ans, dp[it->second]);
  for (int i = 0; i < 26; i++) {
    if ((stat ^ (1 << i)) == 0) return 0;
    auto fd = myhash.equal_range(stat ^ (1 << i));
    for (auto it = fd.first; it != fd.second; it++)
      if (dp[it->second] != -1) ans = min(ans, dp[it->second]);
  }
  return ans;
}
int main() {
  cin >> ss;
  for (int i = 0, stat = 0; i < ss.length(); i++) {
    stat ^= 1 << (ss[i] - 'a');
    dp[i] = getmin(stat) + 1;
    myhash.insert(pair<int, int>(stat, i));
  }
  cout << dp[ss.length() - 1] << endl;
  return 0;
}
