#include <bits/stdc++.h>
using namespace std;
int bitcount(unsigned int bit) {
  int ret = 0;
  while (bit > 0) {
    ret += (bit & 1);
    bit /= 2;
  }
  return ret;
}
int main() {
  string s;
  cin >> s;
  int dp[s.size() + 1], b[s.size()];
  map<unsigned int, int> mp;
  dp[0] = 0;
  unsigned int bit = 0;
  mp[0] = 0;
  for (int i = 0; i < s.size(); i++) {
    bit ^= 1 << (s[i] - 'a');
    if (mp[bit] == 0 && (long long)bit > 0) mp[bit] = i + 1;
    b[i] = bit;
  }
  for (int i = 0; i < s.size(); i++) {
    dp[i + 1] = 10000000;
    if (i >= mp[b[i]]) {
      if ((long long)b[i] == 0)
        dp[i + 1] = 1;
      else
        dp[i + 1] = dp[mp[b[i]] - 1] + 1;
    }
    if (bitcount(bit) == 1) {
      dp[i + 1] = 1;
    }
    for (int j = 0; j < 26; j++) {
      if (mp[b[i] ^ (1 << j)] > 0 && i >= mp[b[i] ^ (1 << j)])
        dp[i + 1] = min(dp[i + 1], dp[mp[b[i] ^ (1 << j)]] + 1);
      else if ((long long)(b[i] ^ (1 << j)) == 0) {
        dp[i + 1] = 1;
      }
    }
  }
  cout << dp[s.size()] << endl;
  return 0;
}
