#include <bits/stdc++.h>
using namespace std;
template <typename A, typename B>
inline bool chmax(A &a, B b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <typename A, typename B>
inline bool chmin(A &a, B b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const long long INF = 1e9 + 100;
const long long MOD = 1000000007;
const double EPS = 1e-10;
const bool debug = 0;
string s;
int dp[212345];
int sum[212345];
int g[1 << 26];
int main() {
  cin >> s;
  for (int i = (0); i < (s.size()); i++) s[i] -= 'a';
  int N = s.size();
  sum[0] = 0;
  for (int i = (0); i < (N); i++) {
    sum[i + 1] = sum[i] ^ (1 << s[i]);
    g[sum[i + 1]] = i + 1;
  }
  fill(dp, dp + N + 1, INF);
  dp[0] = 0;
  for (int i = (0); i < (N); i++) {
    if (dp[i] == INF) continue;
    for (int j = (0); j < (27); j++) {
      int nex = sum[i];
      if (j < 26) nex ^= 1 << j;
      int p = g[nex];
      if (p <= i) continue;
      chmin(dp[p], dp[i] + 1);
    }
  }
  cout << dp[N] << endl;
  return 0;
}
