#include <bits/stdc++.h>
using namespace std;
const int INF = 1 << 28;
const long long LLINF = 1LL << 60;
const double EPS = 1e-9;
map<int, vector<int> > mp;
int dp[1 << 26];
int main() {
  int ans;
  int bit = 0;
  queue<int> que;
  string S;
  cin >> S;
  for (int i = 0; i < S.size(); i++) {
    bit ^= (1 << (S[i] - 'a'));
    for (int j = 0; j < 26; j++) {
      int nbit = bit ^ (1 << j);
      mp[nbit].push_back(bit);
    }
  }
  memset(dp, -1, sizeof(dp));
  dp[0] = 0;
  que.push(0);
  while (!que.empty()) {
    int val = que.front();
    que.pop();
    for (int i = 0; i < mp[val].size(); i++) {
      int nval = mp[val][i];
      if (dp[nval] == -1) {
        dp[nval] = dp[val] + 1;
        que.push(nval);
      }
    }
  }
  cout << dp[bit] + (dp[bit] == 0) << endl;
  return (0);
}
